问题
前提:Android12 targetSDk:31
apk手动可以安装,但系统内置失败!
PackageManager: Failed to parse /system/priv-app/base: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary
解决思路
- 确认resource.arsc没有被压缩
- 确认aligned on a 4-byte boundary
// 执行
C:\android_sdk\build-tools\32.0.0>zipalign -c -v 4 base.apk
...
91366736 resources.arsc (OK) #没有被压缩
89142105 res/layout/layout_main_top_menu.xml (OK - compressed) #压缩了
88363996 res/drawable-xhdpi-v4/icon_menu_light.png (OK)
...
Verification succesful #确认成功
3. 确认资源文件是否有中文命名,包括assets文件夹下;
历程
在执行zipalign命令的时候,发现有资源名称显示为乱码,找到项目中对应的资源,是以中文命名,固怀疑是否跟中文命名有关;修改为英文后,再次进行内置,反馈内置成功。
参考
- Android12适配 Targeting R+(version 30 and above) requires the resources.arsc of installed APKs t...
- Neptune Android11 resources.arsc不支持压缩问题解决
- Android Targeting R+ requires the resources.arsc of installed APKs to be stored uncompressed and al
- Android 11 重打包对齐错误
- Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncom