Android 打包编译报错:Execution failed for task ‘:mobile:transformClassesAndResourcesWithProguardForRelease’.

我在开发过程中从没有报这个错,但是当我要发布应用的时候突然打包失败,日志并没有指出实在什么地方,只是说找不到类,下面是具体的日志:

Execution failed for task ':mobile:transformClassesAndResourcesWithProguardForRelease'.
...
Caused by: java.lang.RuntimeException: Job failed, see logs for detailsat com.android.build.gradle.internal.transforms.ProGuardTransform.transform(ProGuardTransform.java:209)at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)...
Caused by: java.io.IOException: Can't write [D:\lijing\sgreen\mobile\build\intermediates\transforms\proguard\release\0.jar](Can't read [D:\lijing\sgreen\mobile\build\intermediates\javac\release\compileReleaseJavaWithJavac\classes(;;;;;;;**.class)](Can't read [com]  (Can't read [xh] (Can't read [sgreen] (Can't read [BuildConfig.class] (Duplicate jar entry [com/xh/sgreen/a.class]))))))at proguard.OutputWriter.writeOutput(OutputWriter.java:202)...
Caused by: java.io.IOException: Duplicate jar entry [com/xh/sgreen/a.class]at proguard.io.ZipOutput.createOutputStream(ZipOutput.java:155)at proguard.io.ZipOutput.createOutputStream(ZipOutput.java:120)at proguard.io.JarWriter.createOutputStream(JarWriter.java:137)...

一点办法都没有,怎么突然就Can’t read呢?仔细阅读log,发现一只可疑单词Duplicate,提示说 Duplicate jar entry [com/xx/xxxx/a.class],意思就是有多个com/xx/xxxx/a.class,于是项目重头到尾检查一下项目,发现我依赖的一个module的包名和项目的包名一致,抱着试一试的想法,把这个module的包名改成别的,咦!解决了,一头雾水,怎么就可以了,我还不知道为啥?
必须要找到原因,不然咋睡也睡不着。

这是在Stack overflow上找的答案,
Ok, I got the solution.

The Why-

I compared the build steps in gradle console at API22(build OK) and API16(build fails). At API22, the console said-

+Instant Run: Proguard is not compatible with instant run. It has been disabled for debug

+Instant Run: Resource shrinker automatically disabled for debug

…and the build was successful. When i disabled InstantRun, it failed on API22 also.

The Reason-

The problem was in proguard configuration. The BuildConfig.class of coolLib.jar was defined to be kept in proguard-project.txt , so it was keeping all the .class files in that package but BuildConfig.class must be modified at build time according to the Main Project.

The Solution-

I removed that -keep statement and it works like a charm.

此处是源地址

Android release:transformClassesAndResourcesWithProguardForRelease相关推荐

  1. 手电筒android studio,Android Studio:手电筒关闭时崩溃

    我试图开发手电筒应用程序作为我的第一个"真正"的应用程序,几乎所有的工作.但每次我想关闭手电筒时,我的应用程序都会崩溃.代码和logcat的日志如下:Android Studio: ...

  2. Android 解决: Failed to resolve: com.android.support:appcompat-v7:28.+ 错误

    今天,简单讲讲Android studio编译报错:Failed to resolve: com.android.support:appcompat-v7:28.+的问题. 这个问题其实之前遇到过,今 ...

  3. ionic build android release,ionic build android -release运行报错

    ionic build android -release运行报错,Could not reserve enough space for 2097152KB object heap,检查了应该有足够的空 ...

  4. Android点将台:烽火狼烟[-Handler-]

    跨越三千平行宇宙,只是送你一句祝福.为君一笑,何妨戏诸侯----Handler物语 前言 哥发誓,这是我最后一次分析Handler(这是我第三次说这句话,希望不会有下次了) 说起Handler新手的小 ...

  5. Android篇:2019初中级Android开发社招面试解答(下)

    金三银四,冲击大厂,你值得拥有的一份2019初中级移动端社招面试总结+解答 你当前所处: Android篇:2019初中级Android开发社招面试解答(下) Android篇:2019初中级Andr ...

  6. linux 浏览器源码下载,Android开发:图片浏览器源码

    Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...

  7. Android定制:修改开机启动画面

    转自:https://blog.csdn.net/godiors_163/article/details/72529210 引言 Android系统在按下开机键之后就会进入启动流程,这个过程本身需要一 ...

  8. Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...

    UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...

  9. android 5秒后进入,Android/Java:如何在5秒后停止下载?

    我正在使用AsyncTask来下载文件,目的是测量连接的下载速度.我想在5秒后停止下载,以便我可以检查下载的总字节数并计算速度.下面是我使用(这被放置在doInBackground()方法中)的代码: ...

最新文章

  1. 北大博士整理B站实战项目!yyds!
  2. 用Handler的post()方法来传递线程中的代码段到主线程中执行
  3. 学习python装饰器_Python装饰器学习(九步入门)
  4. 【NOIP2015模拟10.22】最小代价
  5. idea(二)初次安装强烈建议修改的配置
  6. ConcurrentHashMap之实现细节(转)
  7. MariaDB配置、集群
  8. java 静态方法的使用_java的静态方法的使用
  9. 列名 userid 不明确。 表结构_SQL-Server(三)表的创建和操作
  10. 使用el-checkbox实现全选,点击失效没有反应 1
  11. php odbc驱动,php ODBC
  12. baidumap vue 判断范围_vue 经典面试题+答案
  13. 不混淆 android jni,JNI 防混淆 Android proguard
  14. 擅长C(DAY 70)
  15. 高等数学学习指导_学习A-Level应该如何选课?
  16. Creative Audigy 2 ZS
  17. python100份教材/教程分享学习,初中高级总有适合你的
  18. 畅捷支付显示连接服务器失败,畅捷支付POS机常见错误码解决方法!
  19. 省份和城市的级联下拉菜单
  20. tensorflow目标检测--识别赵丽颖

热门文章

  1. 数据挖掘 入门和进阶 推荐书籍
  2. js addEventListener() 事件总结
  3. ClickHouse应用随笔2——活跃用户留存统计(前方高能~~)
  4. 运用第一性原理探寻AI本质
  5. 【笔记】VisionMobile:扁平、扩展、挖掘,Google的策略的三大支柱
  6. 中脉乱象之四问中脉人
  7. opengl版本问题
  8. 航空发动机原理复习之计算题总结(三)
  9. arm架构和x86架构,这个架构是指什么
  10. pip3 -bash: /usr/bin/pip3: No such file or directory