我正在使用Android Studio 3.4(金丝雀9),当我构建应用程序时,它失败并出现以下错误
任务:app:transformClassesAndResourcesWithR8ForDebug
R8是一项实验功能。如果您遇到任何问题,请使用“收缩器(R8)”作为组件名称,通过https://issuetracker.google.com提交错误。您可以通过使用'android.enableR8 = false'更新gradle.properties来禁用R8。
AGPBI:{“种类”:“警告”,“文本”:“缺少类:java.lang.instrument.ClassFileTransformer”,“源”:[{}],“工具”:“ D8”}
任务:app:transformClassesAndResourcesWithR8ForDebug失败
失败:构建失败,发生异常。
- 出了什么问题:任务':app:transformClassesAndResourcesWithR8ForDebug'的执行失败。
超出了GC开销限制
当我通过把禁用R8 android.enableR8=false到gradle.properties。一切正常。
那么如何在不禁用R8 Shrinker的情况下解决此错误呢?因为我真的很想测试R8的功能。
尝试使用以下命令从命令行编译我的应用程序时遇到问题:
./Project/gradlew -b ./Project/sampleapp/build.gradle assembleProd -x lint --stacktrace
但命令抛出以下错误:
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at Version.fakeStackEntry(Version_2.2.71.java:0)
at com.android.tools.r8.utils.a0.a(SourceFile:89)
at com.android.tools.r8.R8.a(R8.java:34)
at com.android.tools.r8.R8.run(R8.java:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:259)
at com.android.build.gradle.internal.tasks.R8Task$Companion.shrink(R8Task.kt:480)
at com.android.build.gradle.internal.tasks.R8Task.doTaskAction(R8Task.kt:341)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:90)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
... 94 more
Caused by: java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)
我已经尝试了在 stackoverflow、此处和此处找到的许多解决方案,但没有一个有效。
org.gradle.jvmargs=-Xms4096m -Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError
Run Code Online (Sandbox Code Playgroud)
DEFAULT_JVM_OPTS="-Xms4096m -Xmx8192m"
JAVA_OPTS="-Xms4096m -Xmx8192m"
GRADLE_OPTS="-Xms4096m -Xmx8192m"
Run Code Online (Sandbox Code Playgroud)
export …Run Code Online (Sandbox Code Playgroud)