公司项目,之前targetSDKVersion一直是29,近期小米平台上架强制要求升到30,但是这个版本在android12上安装失败,我用adb命令安装,报错如下图
adb: failed to install c: Program Files (x86)(0A_knight\MorkSpace \HomeStead_Codinglappapp_def\release\app-ap_def-release.apk: Failure [-124: Failed parse during installpackageLT: Targeting R+ (version 30 and above)requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary]
百度直接搜错误,全部都是用apksigner和zipalign重新压缩签名的,实际上android studio默认都会进行对齐并压缩。从android12开始,官方要求不允许压缩了,只需要对齐就好,这明显就是配置一个构建参数的事。
所以答案就是:
aaptOptions {
noCompress '.arsc'
}
这个选项就是告诉android studio,针对“.arsc”后缀的文件不要进行压缩。而对齐本身就是默认做的,不需要配置。
这个标签放到android块内,与defaultConfig平级。
android {
defaultConfig {
...
}
aaptOptions {
noCompress '.arsc'
}
}