Proguard解析异常致APK构建失败,寻求技术解决方案
解决ProGuard构建APK时的语法错误问题
嘿,这个问题我熟!你遇到的是ProGuard规则文件里的语法错误——直接在proguard-rules.pro第23行写org.xmlpull.v1.**是不符合ProGuard语法要求的,它需要搭配具体的指令才能生效,所以才抛出了ParseException导致构建失败。
正确的规则写法示例
根据你的需求,比如如果是要保留org.xmlpull.v1包下的所有类及成员,把第23行改成下面的格式即可:
# 保留org.xmlpull.v1包下所有类的所有成员 -keep class org.xmlpull.v1.** { *; }
如果只需要保留类结构(不需要保留私有成员),可以调整为:
# 保留org.xmlpull.v1包下所有类的公共/受保护成员 -keep class org.xmlpull.v1.** { public protected *; }
后续验证步骤
- 打开
/Users/arcpcarcpc/AndroidStudioProjects/SBSWI/spi-inspection/app/proguard-rules.pro文件,定位到第23行替换成上面的正确规则 - 重新执行Release版本构建任务(可以用命令
./gradlew assembleRelease,或者在Android Studio里点击Build > Generate Signed APK/ABB) - 如果还有报错,检查是否存在其他类似的语法问题,或者参考相关依赖库的官方文档获取现成的ProGuard规则
小提示
很多第三方库(比如xmlpull相关依赖)都会在官方文档里提供适配的ProGuard规则,直接复制使用能避免自己写规则出错哦~
内容的提问来源于stack exchange,提问作者Sumanta Banerjee
相关产品推荐
相关产品推荐

