Android Studio Gradle构建需要超过5分钟

16
我一直在使用Android Studio开发一个简单的应用程序,但是最近几天,每当我点击“运行”按钮时,构建过程需要超过5分钟的时间。这种情况以前从未出现过,我不知道为什么会这样。屏幕提示“Gradle Build Running”,然后在5分钟后才加载应用程序。这种情况在模拟器和我的安卓设备上都出现了。我的Gradle版本是2.10。 我在网上查找了相关问题,并尝试了其他帖子中提到的所有解决方法,包括:
  • 在命令行选项设置中添加--parallel和--offline
  • 在Gradle设置中启用“离线工作”
  • 在gradle.properites文件中添加org.gradle.daemon=true
以下是屏幕截图。

image 1

image 2

image 3

即使完成了所有这些步骤,我的成绩构建仍需要5分钟以上。 以下是事件日志中记录的内容:

10:27:57 AM Executing tasks: [:app:clean, :app:generateDebugSources,     :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies,  :app:generateDebugAndroidTestSources, :app:assembleDebug]
10:34:24 AM Gradle build finished in 6m 26s 378ms

任何建议都将有所帮助。提前感谢您的支持 :)

已经发布了一个类似的问题https://dev59.com/Qpffa4cB1Zd3GeqP2xdv#37253276 - praticus
2
我尝试了那篇帖子中两个评论所建议的方法,但仍然没有成功。 - Parth Bhoiwala
你在使用哪个模拟器? - Mrugesh
我目前正在Nexus 5 API 23 x86(Android 6.0)上运行该应用程序。但是,当我使用USB在我的三星手机上运行它时,Gradle Build需要相同的时间(5分钟)。 - Parth Bhoiwala
我以前见过这个问题。你可以查看这个:https://dev59.com/4VoV5IYBdhLWcg3wN8nh#36533928 - Mehdi Jahed Manesh
3个回答

19

启用"Dex In Process"来加速应用程序构建(适用于Android Studio 2.1)。

通过使用org.gradle.jvmargs属性,将分配给Gradle Daemon VM的内存总量增加1 GB,最小为2 GB:

org.gradle.jvmargs=-Xmx2048m

点击这里了解详情: 使用Dex In Process加速Android Studio构建

dexinprocess


1
我已经在我的gradle.properties文件夹中添加了这行代码,它看起来是这样的:"org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" - Parth Bhoiwala
是的,但是那一行默认是被注释掉的。在它下面添加 org.gradle.jvmargs=-Xmx2048m。我在我的一个项目中尝试了这个方法,构建时间显著减少了。从17秒降到了8秒。 - jayeshsolanki93
我遇到了同样的问题,我尝试添加了那行代码,但没有成功 :( - user5637048
1
我添加了"org.gradle.jvmargs=-Xmx2048m"这行代码,但似乎没有任何效果。构建仍然需要5分钟以上的时间。 - Parth Bhoiwala
我在gradle.properties文件中添加了org.gradle.jvmargs=-Xmx2048m。 - Amey Bawiskar
1
非常好用 - 谢谢!我还遵循了这里的建议,在gradle.properties文件中使用离线设置和其他参数 - 这将我的构建时间从8分钟左右缩短到了约4秒钟。https://dev59.com/D10b5IYBdhLWcg3wQPfw - vinnyh

12

其他答案还没有帮到我。我发现构建用了30分钟以上才出现Error: Out of memory: GC overhead limit exceeded。但是过去几天我已经有了些许进展。

注意:我不认为这是问题的解决方案,只是一个权宜之计,直到Jack解决了问题。

我在我的build.gradle中添加了以下内容:

android {
    ....
  defaultConfig {
    ....
    jackOptions {
            enabled true
            additionalParameters('jack.incremental': 'true')
        }
    }

    compileOptions {
        incremental true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    dexOptions {
        javaMaxHeapSize '4096m'
    }

的作用。
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

修改我的 gradle.properties 文件没有任何效果。我必须在 dexOptions 中添加它。


我遇到了“Error:Gradle DSL method not found: 'additionalParameters()'”的错误。 - Relm

0
gradle.properties 文件中,您可以尝试使用以下代码:
org.gradle.jvmargs=-Xmx2048m
org.gradle.caching=true

希望这有帮助!!

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