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

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

版本:3.2.1 for Windows 64-bit
我更新到了最新版本的Android Studio,它又一次火了。
有什么想法可以解决下面的问题吗?

  1. Gradle sync failed: java.lang.StackOverflowError
  2. at com.android.tools.idea.gradle.dsl.parser.groovy.GroovyDslUtil.findInjections(GroovyDslUtil.java:823)
  3. at com.android.tools.idea.gradle.dsl.parser.groovy.GroovyDslParser.getInjections(GroovyDslParser.java:280)
  4. at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.lambda$fetchDependencies$1(GradleDslSimpleExpression.java:664)
  5. at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:913)
  6. at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.fetchDependencies(GradleDslSimpleExpression.java:663)
  7. at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.setupDependencies(GradleDslSimpleExpression.java:673)
  8. at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.resolve(GradleDslSimpleExpression.java:654)
  9. at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslSimpleExpression.
8zzbczxx

8zzbczxx1#

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

whitzsjs

whitzsjs2#

试试这个

  1. File -> Invalidate Caches/restart -> Invalidate and Restart
  2. Build -> Clean Project
pw136qt2

pw136qt23#

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

9wbgstp7

9wbgstp74#

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

  1. android {
  2. compileSdkVersion 28
  3. buildToolsVersion "28.0.3"
  4. ext.fancyAppNameVersionDate = fancyAppNameVersionDate
  5. buildTypes {
  6. debug {
  7. //[...]
  8. }
  9. release {
  10. //[...]
  11. }
  12. }
  13. defaultConfig {
  14. //[...]
  15. }
  16. }

坏掉的部分是

  1. ext.fancyAppNameVersionDate = fancyAppNameVersionDate

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

  1. ext.fancyAppNameVersionDate

与自己。

展开查看全部
uinbv5nw

uinbv5nw5#

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

  1. apply from: "cordova.gradle"

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

dw1jzc5e

dw1jzc5e6#

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

bmvo0sr5

bmvo0sr57#

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

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

相关问题