背景
前兩天查看Google play控制臺突然發現有告警,一看原來是要求必須盡快適配Android15。
過程
先看了一下網上的資料,Android15適配 發現對我的apk基本上沒有什么影響,除了 動態庫必須16KB對齊這一項。
最簡單查看apk是否16KB對齊的方法是 使用Android studio 查看打包好的apk
有問題的:
適配好的:
重編xlog
去官網看了一下,發現并沒有說支持16KB對齊,看來只能自己動手了。
這里說一下之前我編譯的時候用的是master的最新代碼,所以現在我還是用這個最新代碼編譯,相對應的 java代碼也要用最新的。
修改代碼中page_size定義
添加鏈接參數
注意:xlog官方 使用的是ndk16版本,所以應該添加如下參數
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,max-page-size=16384")
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,common-page-size=16384")
除此之外,還需要解決一個MD5鏈接出錯的問題
有幾個導出符號找不到的編譯錯誤
ndk 16 問題
我之前用ndk16編譯xlog成功,但是編譯apk的時候,遇到了一些問題,不知道其他人有沒有問題,遇到的問題:
arm64-v8a/libmarsxlog.so: invalid local symbol '__bss_start__' in global part of symbol table
所以后面換到了ndk28 , 和app用的ndk版本一致,后面測試運行正常了。
總結
主要就是這些事情了,還算好解決。不想折騰的最好使用1.3.0版本的代碼去編譯,這樣問題更少。