Gradle同步失败:java.lang.StackOverflowError

10

版本:Windows 64位版3.2.1

我升级了最新版本的Android Studio,但又遇到了问题。

您有解决以下问题的任何想法吗?

Gradle同步失败:java.lang.StackOverflowError
at com.android.tools.idea.gradle.dsl.parser.groovy.GroovyDslUtil.findInjections(GroovyDslUtil.java:823)
at com.android.tools.idea.gradle.dsl.parser.groovy.GroovyDslParser.getInjections(GroovyDslParser.java:280)
at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.lambda$fetchDependencies$1(GradleDslSimpleExpression.java:664)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:913)
at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.fetchDependencies(GradleDslSimpleExpression.java:663)
at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.setupDependencies(GradleDslSimpleExpression.java:673)
at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.resolve(GradleDslSimpleExpression.java:654)
at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.

2
我遇到了完全相同的问题。如果您找到了任何解决方案,请告知我。 - Zuzu JH
@kj007 我真的希望你说的是“工作室”。版本号是3.2.1。 - Zuzu JH
抱歉打错了字。 - kj007
@kj007 是的,我清理了项目。如果找不到解决方法,我会尝试降级。 - Fabii
@ZuzuJH 我最终降级到了3.1.4版本,并从项目gradle文件中删除了Groovy依赖项。虽然有点麻烦,但由于时间不足,这是我能做的最好的办法。 - Fabii
显示剩余4条评论
7个回答

2
在gradle.properties文件中增加这个属性org.gradle.jvmargs=-Xmx3000m并分配更多内存解决了我的问题。

1
我曾经在升级到新的IDE(基于Intellij 2019.3)后遇到同样的问题;但是一旦我将OpenJDK从8升级到11,它就可以工作了。还要确保您有足够的堆内存gradle.propertise,如3GB > org.gradle.jvmargs=-Xmx3000m

1
尝试一下。
File -> Invalidate Caches/restart -> Invalidate and Restart

Build -> Clean Project

0
我们也遇到了这个问题。 我们在应用程序级别有一个相当大的build.gradle文件,关键部分如下:
android {
  compileSdkVersion 28
  buildToolsVersion "28.0.3"

  ext.fancyAppNameVersionDate = fancyAppNameVersionDate

  buildTypes {
    debug {
       //[...]
    }
    release {
        //[...]
    }
  }

  defaultConfig {
      //[...]
  }
}

损坏的部分是

ext.fancyAppNameVersionDate = fancyAppNameVersionDate

我不知道为什么会写在那里,因为它没有用处,也不知道为什么现在才成为问题而之前却不是。但是我删除了那行代码,问题就解决了。

这是一个特殊情况,但我刚刚尝试了我们旧项目中的一个新项目的build.gradle文件,它起作用了。然后我删除了与默认生成的build.gradle文件无关的部分,直到它能正常工作。这样我找到了有问题的那一行代码。

编辑:问题出在额外属性的重新赋值上。

ext.fancyAppNameVersionDate

与其自身相关。


0

我通过更改AGP版本和Gradle版本来解决了这个问题。也许是升级到更高的版本,也许是降级到更低的版本,具体取决于你的项目。


0
在我的情况下,“build.gradle”通过导入另一个gradle文件。
apply from: "cordova.gradle"

所以Groovy解析器超出了堆栈限制。

我做的是将导入的gradle配置的内容直接复制到初始配置中,而不是用apply.from导入,这样解决了问题。


0
在我的情况下,该应用程序是使用Jvm默认配置构建的。 在build.gradle中进行更改解决了我的问题。
tasks.withType(GroovyCompile) {
    configure(groovyOptions) {
        forkOptions.jvmArgs = ['-Xmx1024m', '-Xss1024m']
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接