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 时出错

androidstudio项目签名打包生成apk出错整理

android studio怎样生成apk文件

Android Studio 签名的 APK ':app:transformClassesAndResourcesWithProguardForRelease'

生成从 Android Studio 签名的 .apk 时,zipalign 会自动执行吗?

在 Android Studio 中生成签名 APK 时签名版本之间的区别 - V1(Jar 签名)和 V2(完整 APK 签名)?