使用Apktool构建APK时报brut.androlib.AndrolibException错误如何解决
可行解决方案
- 修正AndroidManifest.xml中的版本号参数:检查反编译产物里的
AndroidManifest.xml文件,找到android:versionCode属性,你报错日志里该属性值为0000100,Android的versionCode要求为无前置零的正整数,将该值修改为100后再尝试回编译。 - 清理并重新导入framework缓存:进入路径
C:\Users\kreis\AppData\Local\apktool\framework\,删除目录下的1.apk缓存文件,随后执行命令apktool if 原应用.apk导入待处理应用对应的framework资源,再重新执行回编译操作。 - 排查资源文件错误:报错本质是aapt资源编译失败,你可以手动执行aapt命令查看具体错误原因:
执行后会输出具体的资源报错位置,比如XML标签语法错误、字符串未转义、资源重名等,修正对应问题后再回编译。aapt p -S my-app/res -M my-app/AndroidManifest.xml -I 你的Android SDK路径/platforms/对应API版本/android.jar - 更换aapt编译工具:如果目标应用是较新的Android版本,适配aapt2编译规则,可在回编译时添加
--use-aapt2参数,命令如下:apktool b my-app -o out.apk --use-aapt2 - 确认回编译路径正确:你反编译生成的产物目录名为
my-app,但你提供的回编译命令中指定的目录为jodel,请确认你执行回编译时指定的目录是实际存在的反编译产物目录,避免路径错误导致编译失败。
内容的提问来源于stack exchange,提问作者Anna Schmidt
相关产品推荐
相关产品推荐

