无限Gradle构建运行Java 8

5

我尝试从Java 7迁移到Java 8,因此我安装了Android N的新SDK和所有工具。我按照开发者指南在android studio中使用Java 8的步骤,但是当我尝试编译apk时,我遇到了无限的Gradle Build运行问题。 我已经尝试重新启动Android Studio,但是1小时后,Gradle Build Running仍未完成。在Windows任务管理器中,我看到java.exe进程占用了大量内存,CPU使用率为90%。

有人已经遇到过这个问题吗?

谢谢。

编辑:

我的版本如下:

Java version : 1.8.0_92
Gradle version : 2.1.2
Android Studio version : 2.1.2

compileSdkVersion : 24
buildToolsVersion : 24

targetSdkVersion : 24

编辑2:

我尝试使用Android Studio 2.2,5分钟后开始构建,出现以下错误:

Error:Execution failed for task ':app:compileProductionDebugJavaWithJack'. 
> java.lang.RuntimeException: java.lang.OutOfMemoryError: GC overhead limit exceeded

Java堆的最大大小是多少? - Pr38y
最大堆大小为1065353216(1GB) - Johann67
我也遇到了无限构建的同样问题。 - barq
你实际用的是什么来构建(gradle版本)?问题可能出在你的gradle wrapper上。尝试使用gradle守护进程进行构建。 - once2go
我编辑了我的帖子以添加版本信息。我已经使用了守护进程,但无论是否使用它都不起作用。 - Johann67
@Johann67 我遇到了完全相同的问题。你现在解决了吗? - Micha F.
5个回答

2

将以下内容添加到您的gradle.properties文件中

org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home //edit this according to your java home path

org.gradle.daemon=true

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true

org.gradle.configureondemand=true

添加了最后4行代码,它就像魔法一样奏效了。您能否解释一下这是如何工作的? - Dhanush Raja

1
当您第一次运行Android Studio时,它将下载一些初始插件,延迟取决于互联网连接速度和其他一些因素。但是您可能希望在离线模式下运行IDE。要这样做,请转到“文件 -> 设置”,然后选择“构建、执行、部署” -> “构建工具” -> “Gradle”,并启用“离线工作”复选框。
抱歉,由于声望不足,我无法发表评论:D

0

我也遇到了同样的问题... 如果你使用的是Ubuntu系统,你可以通过安装32位库来解决这个问题。 在Ubuntu上修复Android编译错误。

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

sudo apt-get install lib32stdc++6

0
尝试通过gradle运行您的项目。为此,请转到项目根目录并运行gradle installDebug(如有需要,请安装gradle)。如果几乎完成,则更改Android Studio配置以使用已安装的gradle。如果构建失败,请尝试使用--debug或--info选项运行相同的命令。有时AS会检测到运行时错误,但没有任何信息(无限构建循环)。检查您的项目结构中有效的JDK位置(必须为1.8或类似版本)。还可以尝试清除AS缓存:为此,请转到File->Invalidate Caches/Restart,在此之前先转到“Build”->Clean Project。 还有一个建议(您也可以尝试它)切换您的AS更新通道到Canary,并将其更新到2.2版本。我在我的2.1.2工作室上也未测试n-sdk,但在2.2上工作更稳定。 顺便说一句,您还可能遇到JDK问题。我使用来自Oracle的JDK,对我来说更稳定(也必须与OpenJDK一起使用,但我以前遇到了很多问题)。

不正确,这是他自从升级Java以来第一次在AS中构建gradle。它需要下载一堆文件,因此需要很长时间。 - Ali Bdeir
@AbAppletic,在我的情况下,描述对我解决90%的AS问题有很大帮助。你无法确定主题发起者添加到项目中的依赖关系,因此需要仔细阅读描述。 - once2go
“我尝试从Java 7迁移到Java 8”,看起来这不是第一次开始。 - once2go
当您重新安装Java时,Android Studio需要重新下载Gradle文件。我以前做过。 - Ali Bdeir
感谢您的帮助。我已经尝试使用Android Studio 2.2,但是出现了新的错误(5分钟后)!Error:Execution failed for task ':app:compileProductionDebugJavaWithJack'. > java.lang.RuntimeException: java.lang.OutOfMemoryError: GC overhead limit exceeded - Johann67
请添加您的 build.gradle 内容。 - once2go

0

第一次在AS中构建Gradle时,有时需要一个小时。

这是因为它正在下载一堆文件。你只需要等待。它需要下载更多的gradle文件,最后就会完成。

根据你的连接速度,可能需要1-2个小时。可能会更快或更慢。请耐心等待!:)


请注意,您对此无能为力。

感谢您的帮助。Gradle运行了一个半小时,但目前还没有任何进展 :/。我有良好的连接,使用光纤。但是我看到java.exe占用90%的CPU并使用大量内存。我认为问题不在于Gradle,而可能是Java。 - Johann67
@Johann67 等待2小时,然后重新启动AS并重试。 - Ali Bdeir

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