Execution failed for task ':app:minifyReleaseWithR8'.java.lang.NullPointerExcept

13,504 阅读1分钟

问题

最近把Android studio 升级到了3.6.0,发现打正式包的时候一直出现这个问题,一直都没有解决。问题大概是这样的

 Execution failed for task ':app:minifyReleaseWithR8'.java.lang.NullPointerException (no error message)
* Exception is:
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:minifyReleaseWithR8'.
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:166)
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:163)
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:156)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
....
Caused by: java.lang.NullPointerException
10:35:36.486 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.A.a(:7)
10:35:36.486 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.A.c(:1)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.w.a(:71)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.w.a(:54)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.w.a(:61)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.w.a(:61)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.w.a(:29)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.naming.G.a(:25)
10:35:36.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.R8.a(:615)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.R8.c(:1)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.R8.b(:1)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.utils.O.a(:30)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.R8.runForTesting(:3)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.tools.r8.R8.run(:3)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:215)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.build.gradle.internal.tasks.R8Task$Companion.shrink(R8Task.kt:387)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.build.gradle.internal.tasks.R8Task.doTaskAction(R8Task.kt:268)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:73)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:34)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:91)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:34)
10:35:36.488 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
....

尝试了在Stack Overflow上寻找答案以及提问,一直没有得到有效的解决,今天终于有人回复我的问题,他的回复是这样的

This looks like a known issue. Please see http://issuetracker.google.com/150325706#comment25 for how to use a version of R8 where this has been fixed.

我点进去一看原来r8的问题,按着他的办法试了一下果然可以了

解决方案

repositories {
    maven {
        url 'https://storage.googleapis.com/r8-releases/raw'
    }
}

dependencies {
    classpath 'com.android.tools:r8:1.6.82'          // Must be before the Gradle Plugin for Android.
    classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
 }

加上了r8的这个之后发现打包可以了,顿时腰也不酸了,腿也不疼了,走路都有劲了,终于可以愉快地把gradle 升级到3.6.1