25

我正在使用 Android Studio 3.4 (Canary 9),当我构建我的应用程序时,它失败并出现以下错误

任务:app:transformClassesAndResourcesWithR8ForDebug

R8 是一个实验性功能。如果您遇到任何问题,请在https://issuetracker.google.com提交错误,使用“Shrinker (R8)”作为组件名称。您可以通过使用“android.enableR8=false”更新 gradle.properties 来禁用 R8。

AGPBI: {"kind":"warning","text":"缺少类:java.lang.instrument.ClassFileTransformer","sources":[{}],"tool":"D8"}

任务:app:transformClassesAndResourcesWithR8ForDebug 失败

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务“:app:transformClassesAndResourcesWithR8ForDebug”执行失败。

超出 GC 开销限制

当我通过放入 gradle.properties 禁用android.enableR8=falseR8。一切正常。

那么如何在不禁用 R8 Shrinker 的情况下修复此错误?因为我真的很想测试 R8 的功能。

4

2 回答 2

39

正如您所说,您没有使用任何 custom JVM args,请尝试一下。

在您的gradle.properties文件中尝试几个内存设置值。例如尝试设置

org.gradle.jvmargs=-Xmx4096m

正如评论部分所建议的:

指定用于守护进程的 JVM 参数。

该设置对于调整内存设置特别有用。

org.gradle.jvmargs=-Xmx1536m

我在我的项目中使用了 R8,一切正常。

于 2019-01-17T16:52:46.793 回答
1

有时添加 JVM 堆内存并不能解决问题,尤其是在内存有限的系统上,它会导致其他问题。我的建议是尝试更换垃圾收集器。

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC

超出 GC 开销限制是默认情况下抛出的异常 java 8 垃圾收集器(并行)。就我而言,它解决了问题。

于 2021-08-03T07:16:11.677 回答