Gradle同步失败:java.lang.StackOverflowError

时间:2018-10-11 16:23:43

标签: android-studio

版本:适用于Windows 64位版本的3.2.1

我更新到了最新版本的Android Studio,并且再次引起了轰动。

有关如何解决以下问题的任何想法?

Gradle sync failed: 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.

5 个答案:

答案 0 :(得分:1)

尝试一下。

File -> Invalidate Caches/restart -> Invalidate and Restart

Build -> Clean Project

答案 1 :(得分:1)

升级到新的IDE(基于Intellij 2019.3)后,我遇到了同样的问题;但是一旦我将OpenJDK从8升级到11,它就可以工作了。另外,请确保您有足够的堆RAM gradle.properise,例如3GB> org.gradle.jvmargs=-Xmx3000m

答案 2 :(得分: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

本身。

答案 3 :(得分:0)

在我的情况下,“ build.gradle”通过导入了另一个gradle文件

apply from: "cordova.gradle"

因此Groovy解析器超出了堆栈限制。

我所做的只是将导入的gradle配置的内容复制到初始配置中,而不是使用apply.from进行导入,从而解决了该问题。

答案 4 :(得分:0)

在gradle.properties中的此属性 org.gradle.jvmargs = -Xmx3000m 上增加分配的内存已为我解决。