#Android.mk配置的問題
error: mismatch in the <uses-library> tags between the build system and the manifest: - required libraries in build system: [] vs. in the manifest: [] - optional libraries in build system: [] vs. in the manifest: [androidx.window.extensions, androidx.window.sidecar]
你可能會遇到類似問題:其實Android 12 對 應用預裝 會強制進行<uses-library>檢查,所以當應用有這個引用,但是mk配置里沒做相關配置,就會出現(xiàn)上面的問題。
解決辦法:
第一種:忽略檢查
LOCAL_ENFORCE_USES_LIBRARIES := false
第二種:指明使用的庫,應用申明的都要寫,中間用空格隔開
LOCAL_OPTIONAL_USES_LIBRARIES := org.apache.http.legacy androidx.window.extensions?
FAQ:
?關于APP <uses-library>的使用情況查看:使用aapt 工具,可以查看到使用情況?
aapt dump badging? xxx.apk
? ?
#安裝包的問題
? ? ? ? 對于Google的以及一些上架GooglePlay的應用,如果使用了 Android APP bundle 方式打包的,那么獲取到的安裝包基本都是那種分離包,即原來一個完整的apk,將里面的適配UI資源,語言適配,so包適配等都單獨打成一個apk包,從而GooglePlay在安裝時,會根據(jù)設備的情況進行選裝這樣子,下面一張Google Docs 的分離包壓縮包,感受下:

所以,對于單APK的傳統(tǒng)配置,這種分離包,且有依賴關系的,無法配置,所以一個比較可行的解決辦法就是,尋找老一點的版本,沒有做分離包支持的版本,像這個網(wǎng)站就是個不錯的選擇:
https://www.apkmirror.com/
類似這樣GooglePlay的鏡像下載網(wǎng)站,下載下來的單獨APK文件,也不是絕對完全的,因為有的較新的版本,雖然是一個整合的完整的版本,但是卻有簽名缺失的情況
這種情況 adb install 可以安裝,但是系統(tǒng)代碼內預置卻無法安裝
補充:
查看apk 簽名證書的信息:利用keytool 工具
keytool -printcert -jarfile ../../xxxxx.apk