MTK Android12 内置应用问题小结

#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配置里没做相关配置,就会出现上面的问题。

解决办法:

第一种:忽略检查

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在安装时,会根据设备的情况进行选装这样子,下面一张Google Docs 的分离包压缩包,感受下:


可以看到,有很多apk

所以,对于单APK的传统配置,这种分离包,且有依赖关系的,无法配置,所以一个比较可行的解决办法就是,寻找老一点的版本,没有做分离包支持的版本,像这个网站就是个不错的选择:

https://www.apkmirror.com/

类似这样GooglePlay的镜像下载网站,下载下来的单独APK文件,也不是绝对完全的,因为有的较新的版本,虽然是一个整合的完整的版本,但是却有签名缺失的情况

这种情况 adb install 可以安装,但是系统代码内预置却无法安装

补充:

查看apk 签名证书的信息:利用keytool 工具

keytool -printcert -jarfile ../../xxxxx.apk

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容