Android Studio 签名的 APK ':app:transformClassesAndResourcesWithProguardForRelease'
Posted
技术标签:
【中文标题】Android Studio 签名的 APK \':app:transformClassesAndResourcesWithProguardForRelease\'【英文标题】:Android Studio Signed APK ':app:transformClassesAndResourcesWithProguardForRelease'Android Studio 签名的 APK ':app:transformClassesAndResourcesWithProguardForRelease' 【发布时间】:2016-06-29 22:55:53 【问题描述】:当我尝试在 android Studio 中生成签名时,出现以下错误:
错误:任务 ':app:transformClassesAndResourcesWithProguardForRelease' 执行失败。 java.io.IOException: 请先更正上述警告。
已经进行了一些研究并发现例如:
Error:Execution failed for task ':android:transformClassesAndResourcesWithProguardForRelease'
我听从了建议,但没有奏效。所以,我尝试将我的buildToolsVersion
更新为23.0.2
。
也没有用。
仅当我将 minifyEnabled
修改为 false 并且我不想这样做时才有效。
你能给我一个曲目吗?
【问题讨论】:
您可能被要求使用 --debug 或其他东西来构建以获取更多信息。这说明了什么? 【参考方案1】:尝试执行干净的构建(构建 > 清洁项目)并再次构建。
如果这不起作用,很可能 Proguard 正在删除您应用中的一些重要类和/或库。查看日志中错误消息上方生成的警告。您需要在 proguard-rules.pro 文件中添加规则以保留必要的类。 Here is an example of the rules required to keep the Butterknife library.
【讨论】:
JodaTime 的故障。刚刚有了这个:-dontwarn org.joda.time.**
到我的 proguard-rules.pro 文件,它的工作原理。真的非常感谢科林,请我喝酒 ;-)【参考方案2】:
我遇到了这个错误,我不知道为什么会发生。
我尝试了很多解决方案都没有成功。
除了将这些行添加到我的 ProGuard 文件 (proguard-rules.pro) 中:
-ignorewarnings
-keep class *
public private *;
然后清理并重建,然后生成发布apk。
感谢拉胡尔...
【讨论】:
谢谢 - 在围绕 gradle 考虑“版本”兼容性之后,这实际上是我的解决方案。 请注意,该指令将阻止 proguard 删除任何未使用的类,这可能会大大增加您的应用程序的大小。您可能需要考虑使用更有针对性的指令(例如,仅保留导致原始错误的包)。【参考方案3】:在 proguard-rules.pro 中添加这一行
-keepattributes EnclosingMethod
【讨论】:
【参考方案4】:更新你的 Gradle 插件,它就会工作。
【讨论】:
以上是关于Android Studio 签名的 APK ':app:transformClassesAndResourcesWithProguardForRelease'的主要内容,如果未能解决你的问题,请参考以下文章
生成签名的 APK:构建 APK Android Studio 时出错
Android Studio 签名的 APK ':app:transformClassesAndResourcesWithProguardForRelease'
生成从 Android Studio 签名的 .apk 时,zipalign 会自动执行吗?
在 Android Studio 中生成签名 APK 时签名版本之间的区别 - V1(Jar 签名)和 V2(完整 APK 签名)?