我需要为我的应用程序制作数百种风格。他们有不同的标志和名称。当我使用android studio的productFlavor时,它总是OOM,并且花费很长时间来构建数百个应用程序。
所以我想通过apktool制作这些应用程序。 反编译
、重建
、zipalign
、apksign
。但我发现,最终生成的apk无法安装。
错误是:
Failure [INSTALL_FAILED_INVALID_APK: ed to extract native libraries, res=-2]
apktool d my_app.apk decompile
更改 Logo 和名称。
apktool b decompile my_app-rebuild.apk
zipalign -v 4 my_app-rebuild.apk my_app-align.apk
apksigner sign --ks my_key.jks --ks-pass pass:my_ks_pass --key-pass pass:my_key_pass --v1-signing-enabled true --v2-signing-enabled true --out my_app_out.apk my_app-align.apk
完成这些工作后,my_app_out.apk 无法安装。
最佳答案
从错误中你got :
Failure [INSTALL_FAILED_INVALID_APK: ed to extract native libraries, res=-2]
如果设置为 false
,则您的 native 库必须进行页面对齐并以未压缩的方式存储在 APK 中。
您需要将 extractNativeLibs
标志设置为 true
,或者您需要在执行 zipaligning 时对 apk 进行页面对齐。通过添加 -p
参数:
-p : outfile.zip
应对 infile.zip 中的所有共享对象文件使用相同的页面对齐方式
zipalign 命令应该是:
zipalign -p -v 4 my_app-rebuild.apk my_app-align.apk
关于apktool - 即使经过 zipalign 和 Sign 后,apktool 重建的 apk 也无法安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204032/