android Gradle同步失败:java.lang.StackOverflowError

p1tboqfb  于 2023-06-27  发布在  Android
关注(0)|答案(7)|浏览(241)

版本: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.
8zzbczxx

8zzbczxx1#

在www.example.com中增加此属性上的分配内存org.gradle.jvmargs=-Xmx 3000 mgradle.properties 为我解决了这个问题。

whitzsjs

whitzsjs2#

试试这个

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

Build -> Clean Project
pw136qt2

pw136qt23#

我升级到新的IDE(基于Intellij 2019.3)后遇到了同样的问题;但是一旦我把我的OpenJDK从8升级到11,它就工作了。同时确保你有足够的堆RAM gradle.propertise像3GB > org.gradle.jvmargs=-Xmx3000m

9wbgstp7

9wbgstp74#

我们也有这个问题。我们有一个相当大的构建。应用程序级别的gradle关键部分看起来像这样:

android {
  compileSdkVersion 28
  buildToolsVersion "28.0.3"

  ext.fancyAppNameVersionDate = fancyAppNameVersionDate

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

  defaultConfig {
      //[...]
  }
}

坏掉的部分是

ext.fancyAppNameVersionDate = fancyAppNameVersionDate

我不知道为什么它被写在那里,因为它没有用,我不知道为什么它现在是一个问题,而不是以前。但我删除了那行,它解决了这个问题。
这是一个特定的案例,但我只是尝试了一个新项目的build.gradle在我们的旧项目,它的工作。在那之后,我删除了所有不属于默认生成的build.gradle的部分,直到它工作。这样我就找到了那条发臭的线。
编辑:问题是多余房产的重新分配

ext.fancyAppNameVersionDate

与自己。

uinbv5nw

uinbv5nw5#

在我的情况下,“build.gradle”通过

apply from: "cordova.gradle"

因此,Groovy解析器超出了堆栈限制。
我所做的只是复制初始配置中导入的gradle配置的内容,而不是使用apply.from导入,这解决了这个问题。

dw1jzc5e

dw1jzc5e6#

我通过将AGP版本和Gradle版本更改为另一个来修复此问题。也许是更高版本,也许是更低版本,这取决于你的项目。

bmvo0sr5

bmvo0sr57#

在我的例子中,应用程序是用JVM默认配置构建的。在build.gradle中更改解决了我的问题。

tasks.withType(GroovyCompile) {
    configure(groovyOptions) {
        forkOptions.jvmArgs = ['-Xmx1024m', '-Xss1024m']
    }
}

相关问题