Gradle sync失败:java.lang.StackOverflowError

Fab*_*bii 6 android-studio

版本:3.2.1 for Windows 64-bit

我更新到最新版本的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.

Tra*_*ndy 0

我们也遇到了这个问题。我们在应用程序级别有一个相当大的 build.gradle ,关键部分如下所示:

android {
  compileSdkVersion 28
  buildToolsVersion "28.0.3"

  ext.fancyAppNameVersionDate = fancyAppNameVersionDate

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

  defaultConfig {
      //[...]
  }
}
Run Code Online (Sandbox Code Playgroud)

破损的部分是

ext.fancyAppNameVersionDate = fancyAppNameVersionDate
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它写在那里,因为它没有用,我不知道为什么它现在是一个问题而不是以前。但我删除了该行并解决了问题。

这是一个特定的案例,但我刚刚在旧项目中尝试了新项目的 build.gradle ,它起作用了。之后,我删除了不属于默认生成的 build.gradle 的所有部分,直到它起作用为止。这样我就找到了臭线。

编辑:问题是额外属性的重新分配

ext.fancyAppNameVersionDate
Run Code Online (Sandbox Code Playgroud)

与它自己。