因为项目做了自动化,故 “加固 apk“ 自然也要写入脚本,实现自动化 “构建、加固、重命名、登录 fir.im 、上传 apk“ 等一系列流程:
今天在给项目增加 “腾讯乐固“ 的 leguapi.jar 后,构建、打 release 包时,发生 error 如下:
错误信息:
Error:Execution failed for task ':xxx:transformClassesWithJarMergingForCommonRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/annotations/Expose.class
分析:
项目中有多个 Expose.class ,冲突了。在自己写的代码中,并没有找到该 class,猜测应该是其他 jar 包中也引用了该 class。于是:
解决方案:
在 build.gradle 中,
// compile fileTree(dir: 'libs', include: ['*.jar'])
provided files('libs/leguapi.jar')
// 若 libs 下还有其他 jar 包,则可用如下形式添加
compile files('libs/core.jar')
重新 build 打包,解决~