在Android Studio中启用R8 Shrinker时超出了GC开销限制

在Android Studio中启用R8 Shrinker时超出了GC开销限制,android,android-studio,android-r8,android-studio-3.4,Android,Android Studio,Android R8,Android Studio 3.4,我使用的是Android Studio 3.4(金丝雀9),当我构建我的应用程序时,它失败了,出现了以下错误 任务:应用程序:使用R8fordebug转换类和资源 R8是一个 实验特征。如果您遇到任何问题,请提交错误 在,使用“收缩器(R8)”作为组件 名称您可以通过使用更新gradle.properties来禁用R8 'android.enableR8=false' AGPBI:{“种类”:“警告”,“文本”:“缺少类: java.lang.instrument.ClassFileTransf

我使用的是Android Studio 3.4(金丝雀9),当我构建我的应用程序时,它失败了,出现了以下错误

任务:应用程序:使用R8fordebug转换类和资源

R8是一个 实验特征。如果您遇到任何问题,请提交错误 在,使用“收缩器(R8)”作为组件 名称您可以通过使用更新gradle.properties来禁用R8 'android.enableR8=false'

AGPBI:{“种类”:“警告”,“文本”:“缺少类: java.lang.instrument.ClassFileTransformer,“源”:[{}],“工具”:“D8”}

任务:应用程序:transformClassesAndResourcesWithR8ForDebug失败

失败:生成失败,出现异常

  • 错误:任务执行失败:应用程序:transformClassesAndResourcesWithR8ForDebug’
超出GC开销限制

当我通过将
android.enableR8=false
放入gradle.properties来禁用R8时。一切正常


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

正如您所说,您没有使用任何自定义的
JVM参数,请尝试一下

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

org.gradle.jvmargs=-Xmx4096m
根据评论部分的建议:

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

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

org.gradle.jvmargs=-Xmx1536m


我在我的项目中使用了R8,所有的都很好。

您对org.gradle.jvmargs有特殊的设置还是使用默认值?在我的AS 3.3中,R8工作得很好。@shadowsheep是的,它在AS 3.3上工作,但当我升级时,它不再工作。顺便说一句,我没有使用任何自定义jvm argsSo,请尝试调整内存设置,例如
org.gradle.jvmargs=-XX\:MaxHeapSize\=1024m-Xmx4608M
,或者更多。让我们看看它是否能解决问题。让我知道。@nhoxbypass我收到了相同的gc开销错误。你找到解决方法了吗?对于gradle版本5.1.1(在gradle wrapper.properties中),这不起作用(堆大小和Xmx设置为4 GB也不起作用),但对于实际的5.4.1版本,这不起作用(也只将Xmx设置为2 GB)。请确保在Android Studio 3.5.2中使用gradle.properties而不是gradle-wrapper.properties。这也提高了我构建的速度。在使用com.android.tools在Jenkins上构建时不起作用。构建:gradle:4.2.1