Android release:transformClassesAndResourcesWithProguardForRelease
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相关推荐
- 手电筒android studio,Android Studio:手电筒关闭时崩溃
我试图开发手电筒应用程序作为我的第一个"真正"的应用程序,几乎所有的工作.但每次我想关闭手电筒时,我的应用程序都会崩溃.代码和logcat的日志如下:Android Studio: ...
- Android 解决: Failed to resolve: com.android.support:appcompat-v7:28.+ 错误
今天,简单讲讲Android studio编译报错:Failed to resolve: com.android.support:appcompat-v7:28.+的问题. 这个问题其实之前遇到过,今 ...
- ionic build android release,ionic build android -release运行报错
ionic build android -release运行报错,Could not reserve enough space for 2097152KB object heap,检查了应该有足够的空 ...
- Android点将台:烽火狼烟[-Handler-]
跨越三千平行宇宙,只是送你一句祝福.为君一笑,何妨戏诸侯----Handler物语 前言 哥发誓,这是我最后一次分析Handler(这是我第三次说这句话,希望不会有下次了) 说起Handler新手的小 ...
- Android篇:2019初中级Android开发社招面试解答(下)
金三银四,冲击大厂,你值得拥有的一份2019初中级移动端社招面试总结+解答 你当前所处: Android篇:2019初中级Android开发社招面试解答(下) Android篇:2019初中级Andr ...
- linux 浏览器源码下载,Android开发:图片浏览器源码
Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...
- Android定制:修改开机启动画面
转自:https://blog.csdn.net/godiors_163/article/details/72529210 引言 Android系统在按下开机键之后就会进入启动流程,这个过程本身需要一 ...
- Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...
UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...
- android 5秒后进入,Android/Java:如何在5秒后停止下载?
我正在使用AsyncTask来下载文件,目的是测量连接的下载速度.我想在5秒后停止下载,以便我可以检查下载的总字节数并计算速度.下面是我使用(这被放置在doInBackground()方法中)的代码: ...
最新文章
- 北大博士整理B站实战项目!yyds!
- 用Handler的post()方法来传递线程中的代码段到主线程中执行
- 学习python装饰器_Python装饰器学习(九步入门)
- 【NOIP2015模拟10.22】最小代价
- idea(二)初次安装强烈建议修改的配置
- ConcurrentHashMap之实现细节(转)
- MariaDB配置、集群
- java 静态方法的使用_java的静态方法的使用
- 列名 userid 不明确。 表结构_SQL-Server(三)表的创建和操作
- 使用el-checkbox实现全选,点击失效没有反应 1
- php odbc驱动,php ODBC
- baidumap vue 判断范围_vue 经典面试题+答案
- 不混淆 android jni,JNI 防混淆 Android proguard
- 擅长C(DAY 70)
- 高等数学学习指导_学习A-Level应该如何选课?
- Creative Audigy 2 ZS
- python100份教材/教程分享学习,初中高级总有适合你的
- 畅捷支付显示连接服务器失败,畅捷支付POS机常见错误码解决方法!
- 省份和城市的级联下拉菜单
- tensorflow目标检测--识别赵丽颖
热门文章
- 数据挖掘 入门和进阶 推荐书籍
- js addEventListener() 事件总结
- ClickHouse应用随笔2——活跃用户留存统计(前方高能~~)
- 运用第一性原理探寻AI本质
- 【笔记】VisionMobile:扁平、扩展、挖掘,Google的策略的三大支柱
- 中脉乱象之四问中脉人
- opengl版本问题
- 航空发动机原理复习之计算题总结(三)
- arm架构和x86架构,这个架构是指什么
- pip3 -bash: /usr/bin/pip3: No such file or directory