问题
最近把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