【问题标题】:Infinite Gradle Build Running Java 8运行 Java 8 的无限 Gradle 构建
【发布时间】:2016-10-22 16:45:56
【问题描述】:

我尝试从 Java 7 迁移到 Java 8,因此我安装了适用于 Android N 的新 sdk 和所有工具。我关注developper guide to use Java 8 in android studio,但是当我尝试编译apk时,我有一个无限的Gradle Build Running..我已经尝试重新启动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 堆大小是多少?
  • 最大堆大小为 1065353216 (1GB)
  • 我在无限构建中遇到了同样的问题。
  • 你实际用于构建的东西(gradle 版本)?问题可能出在您的 gradle 包装器中。尝试使用 gradle deamon 构建
  • 我编辑我的帖子以添加版本。我已经使用了守护进程,但不管有没有它都不起作用。

标签: android android-studio gradle java-8 android-7.0-nougat


【解决方案1】:

我有同样的问题... 如果你在 ubuntu 下,你可以通过安装 32 个库来解决这个问题。 修复 ubuntu 上的 android bug 编译

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

sudo apt-get install lib32stdc++6

【讨论】:

    【解决方案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 行,它就像一个魅力。你能解释一下这是如何工作的吗?
    【解决方案3】:

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

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

    这应该需要 1-2 小时,具体取决于您的连接。可能需要更少或更多。等一下! :)


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

    【讨论】:

    • 感谢您的帮助。 Gradle 运行了一个半小时......但暂时没有:/。我有一个很好的连接,与光纤。但我看到 java.exe 运行 90% 的 CPU 并使用大量内存。我认为问题不是gradle,而是java。
    • @Johann67 等到2小时,然后重启AS再试一次。
    【解决方案4】:

    尝试通过 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。它需要下载一堆文件,因此需要很长时间。
    • @AbAppletic,就我而言,它的描述可以帮助我解决 90% 的 AS 问题。你不能确定,虽然看不到主题启动者添加到他的项目中的依赖项。
    • 所以,关键词:“我尝试从 Java 7 迁移到 Java 8”。在我看来这不是第一次开始。
    • 重新安装java时,Android Studio需要重新下载Gradle文件。我以前做过。
    • 感谢您的帮助。我尝试使用 android studio 2.2 并且出现新错误(5 分钟后)! Error:Execution failed for task ':app:compileProductionDebugJavaWithJack'. > java.lang.RuntimeException: java.lang.OutOfMemoryError: GC overhead limit exceeded
    【解决方案5】:

    当您第一次运行 Android Studio 时,它会下载一些初始插件,延迟取决于互联网连接速度和其他一些因素。但是您可能希望在离线模式下运行 IDE。为此,请访问 文件 -> 设置 然后是“构建、执行、部署”->“构建工具”->“Gradle” 并启用“离线工作”复选框。

    抱歉,由于声誉低,我无法对此发表评论:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2020-06-21
      相关资源
      最近更新 更多