错误:执行失败的任务':android:transformClassesAndResourcesWithProguardForRelease'

每当我运行我的项目时,我得到这个错误。 我可以做一个清洁,然后再次运行,它的工作原理。 但这不是一个最佳解决scheme。 有任何想法吗?

Error:Execution failed for task ':android:transformClassesAndResourcesWithProguardForRelease'. 

java.io.IOException:未能将android \ build \ intermediates \ transforms \ proguard \ release \ folders \ 3 \ 1f \ main \ classes.jar重命名为android \ build \ intermediates \ transforms \ proguard \ release \ jars \ 3 \ 1f \ classes.jar

当SDK,构build工具和Gradle插件的版本不匹配时(就兼容性而言),会发生此错误。 解决scheme是validation您是否正在使用它们的最新版本。 gradle插件放在项目的build.gradle文件中。 其他版本在模块的build.gradle文件中。 例如 ,对于SDK 23 ,您必须使用构build工具23.0.1和gradle 插件版本1.3.1。

更改设置后清理项目。 (解决了我的问题,再也没有见过。)

请参考这个问题

proguard-rules.txt中删除包含以下内容的行:

-injars-outjars-libraryjars

并重build。

在我的情况下,通过降级由Gradle使用的Proguard版本来生成已签名的apk来解决问题。 您可以通过将此块放置在项目级别build.gradle文件中来降级它。 将其放置到build脚本块中。

 configurations.all { resolutionStrategy { force 'net.sf.proguard:proguard-gradle:5.2.1' } } 

您可以通过在项目根文件夹中执行以下命令来检查当前版本的Proguard:

 ./gradlew buildEnvironment | grep proguard 

这是Proguard stacktrace的一部分,以帮助其他人find我遇到的问题。

 Caused by: java.io.IOException: java.lang.NullPointerException at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:283) at com.android.build.gradle.internal.transforms.ProGuardTransform.access$000(ProGuardTransform.java:63) at com.android.build.gradle.internal.transforms.ProGuardTransform$1.run(ProGuardTransform.java:173) at com.android.builder.tasks.Job.runTask(Job.java:48) at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41) at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:225) Caused by: java.lang.NullPointerException at proguard.optimize.info.NonEmptyStackReturnMarker.setReturnsWithNonEmptyStack(NonEmptyStackReturnMarker.java:102) at proguard.optimize.info.NonEmptyStackReturnMarker.markReturnWithNonEmptyStack(NonEmptyStackReturnMarker.java:95) at proguard.optimize.info.NonEmptyStackReturnMarker.visitSimpleInstruction(NonEmptyStackReturnMarker.java:76) ... at proguard.optimize.Optimizer.execute(Optimizer.java:649) at proguard.ProGuard.optimize(ProGuard.java:328) at proguard.ProGuard.execute(ProGuard.java:127) at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:54) at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:254) ... 5 more 

在我的情况下,我只是更新我的插件,这个错误已经解决了。

当你将minifyEnabled修改为false时,它是有效的。

请参阅此Android Studio签名APK':app:transformClassesAndResourcesWithProguardForRelease'