首页 文章

Android Studio gradle需要很长时间才能构建

提问于
浏览
186

我的 Android Studio 项目用于构建更快,但现在需要很长时间才能构建 . 可能导致延误的任何想法?我试过https://stackoverflow.com/a/27171878/391401但没效果 . 我没有运行可能会中断构建的Anti病毒 . 我的应用程序也没有那么大(大约 5MB ),它曾经在几秒钟内构建,但不确定发生了什么变化 .

10:03:51 Gradle build finished in 4 min 0 sec  
10:04:03 Session 'app': running  
10:10:11 Gradle build finished in 3 min 29 sec  
10:10:12 Session 'app': running  
10:20:24 Gradle build finished in 3 min 42 sec  
10:28:18 Gradle build finished in 3 min 40 sec  
10:28:19 Session 'app': running  
10:31:14 Gradle build finished in 2 min 56 sec   
10:31:14 Session 'app': running  
10:38:37 Gradle build finished in 3 min 30 sec  
10:42:17 Gradle build finished in 3 min 40 sec  
10:45:18 Gradle build finished in 3 min 1 sec  
10:48:49 Gradle build finished in 3 min 30 sec  
10:53:05 Gradle build finished in 3 min 22 sec  
10:57:10 Gradle build finished in 3 min 19 sec  
10:57:11 Session 'app': running

19 回答

  • 0

    Check your Internet connection . 如果互联网速度很慢,那么gradle build也需要很长时间才能构建 . 我检查通过改变我的无线互联网连接与另一个良好的速度连接 . 现在 Build 时间很正常 . 请在转到其他解决方案之前尝试此操作 . 有人会错误地决定重新安装或更改设置 . 我希望它会有所帮助 . 感谢致敬 .

  • 7

    在Android Studio中,转到文件 - >设置 - >构建,执行,部署 - >构建工具 - > Gradle

    (如果在mac上) Android Studio - >首选项... - >构建,执行,部署 - >构建工具 - > Gradle

    检查“全局Gradle设置”下的“离线工作”

    它将减少90%的gradle构建时间 .

    check this to reduce build time

    如果您刚刚在gradle中添加了新的依赖项,则必须取消选中 offline work 或gradle将无法解析依赖项 . 在完成解析之后,您可以检查 offline work 以获得更快的构建

  • -3

    如果您使用的是Google Play服务,请确保您没有在Gradle构建脚本中使用此服务:

    compile 'com.google.android.gms:play-services:8.3.0'
    

    仅使用您的应用实际使用的那些Google API . 如果你使用的只是谷歌 Map ,你会使用这个:

    com.google.android.gms:play-services-maps:8.3.0
    

    当我这样做时,我的编译时间从2分钟到大约25秒 . 有关您可以有选择地编译的Google API的列表,请参阅:

    https://developers.google.com/android/guides/setup

  • 33

    找到了一种简单而且最好的方法来构建gradle

    转到您的应用>>打开您的gradle.properties并从中更改几行[删除 # ]

    否则你也可以复制粘贴我的下面的代码片段

    # Project-wide Gradle settings.
    
    # IDE (e.g. Android Studio) users:
    # Gradle settings configured through the IDE *will override*
    # any settings specified in this file.
    
    # For more details on how to configure your build environment visit
    # http://www.gradle.org/docs/current/userguide/build_environment.html
    
    # Specifies the JVM arguments used for the daemon process.
    # The setting is particularly useful for tweaking memory settings.
    # Default value: -Xmx2048m -XX:MaxPermSize=512m
     org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    
    # When configured, Gradle will run in incubating parallel mode.
    # This option should only be used with decoupled projects. More details, visit
    # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
     org.gradle.parallel=true
    

    它对我来说早了几乎需要2-3分钟,现在只用了5-6秒

    在上面的场景我的mac机器有8GB内存,所以我为gradle分配了4gb

  • -38

    找到原因!!如果Android Studio具有代理服务器设置但无法访问服务器,那么构建需要很长时间,可能是它试图到达代理服务器并等待超时 . 当我删除代理服务器设置其工作正常 .

    删除代理: File > Settings > Appearance & Behavior > System settings > HTTP Proxy

  • 2

    启用Java 8功能导致致命的慢速构建

    gradle这个

    jackOptions {
            enabled true
      }
    
      compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
    

    删除上面的行后,它会在几秒钟内构建 .

    有问题Compiling with Jack takes very long time

    项目经理的答案

    我们知道现在杰克的建造时间是一个问题 . 我们对2.4 Gradle插件进行了改进,这应该是增量构建的重大改进 .

    截至目前,我能找到的最新Gradle版本是2.3.0-beta4

  • 400

    遵循这些步骤将使其快10倍并缩短构建时间90%

    首先在以下目录中创建名为gradle.properties的文件:

    /home/<username>/.gradle/ (Linux)
    /Users/<username>/.gradle/ (Mac)
    C:\Users\<username>\.gradle (Windows)
    

    将此行添加到文件中:

    org.gradle.daemon=true
    
    org.gradle.parallel=true
    
  • 17

    推荐阅读:How I save 5h/week on Gradle builds

    根据这篇优秀的帖子,你应该尝试优化以下内容:

    • Gradle Daemon

    • 并行项目执行

    • 按需配置项目

    • 模块价格昂贵......

  • 0

    @AndroidDev解决方案为我工作 . 我把整个lib都包含在gradle中 .

    compile 'com.google.android.gms:play-services:8.4.0'
    

    改变解决了问题 . 从4分钟到1分钟 .

    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    

    日Thnx

  • 0

    1)在我的gradle文件中添加了一些新的库依赖项之后,我的构建时间严重增加,结果发现我之后需要使用multidex . 当我正确设置multidex时,我的构建时间上升到2-3分钟 . 因此,如果您希望更快的构建时间,请避免使用multidex,并尽可能减少库依赖项的数量 .

    2)你也可以尝试在android studio中启用“离线工作”,就像这里建议的那样,这是有道理的 . 每次进行构建时都不会重新获取库 . 禁用“离线工作”可能导致连接缓慢或代理/ VPN使用速度缓慢可能会导致构建时间变慢 .

    3)谷歌服务 - 如这里提到的,不要使用整个捆绑,只使用它所需的部分 .

  • 1

    在Android studio 2.0的测试版中,他们推出了一个名为Instant Run的功能 . 它通过一个重要因素减少了构建时间 . 核心概念是,Android Studio仅推动对已经运行的应用程序进行的微小更改 .

    它将我们在代码中所做的更改分为三个部分:热插拔,热插拔和冷交换,基于更改对构建的负载量 . 之后,它只是交换已经运行的应用程序中的代码,我们可以看到更改运行几秒钟 . 有关更多信息,请参阅doc .

    Here您可以下载Android Studio 2.0预览版 .

    PS:此功能存在一些问题 . 他们已经在文档中列出了它 . 之前看看安装 .

  • 1
    • 转到文件 - >设置 - >平移 - >将其设置为离线模式并检查
  • 39

    我长时间遇到同样的问题,但我通过调整gradle中的设置解决了这个问题 .

    第1步:在模块应用程序中添加BuildScript中的依赖项

    buildscript {
     dependencies {
             classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
    }
    }
    

    第2步:添加dexOption并提供以下heapSize

    dexOptions {
        incremental = true;
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }
    

    第3步:添加productFlavors

    productFlavors {
        dev {
            minSdkVersion 23
            applicationId = "com.Reading.home"
        }
        prod {
            minSdkVersion 15
            applicationId = "com.Reading.home" // you don't need it, but can be useful
    
        }
    }
    

    这应该减少你的构建时间 .

  • 15

    If you're using Windows 8...

    DroidArc和AndroidDev解决方案有用,但不是很有用 . 我的问题与我的Windows 8操作系统及其100%的磁盘使用率有关 .

    特别是Windows搜索服务,是最耗费的 . 禁用它:cmd(Admin)> net.exe stop“Windows search”

    我按照这个链接的方向,它解决了真正的问题4 Tips to Fix 100% Disk Usage & Improve Windows Performance

    希望这可以帮助 .

  • 3

    我在kotlin遇到了同样的问题 . 更新过时的kotlin运行时为我解决了这个问题

  • 140

    我有这样的问题,特别是在通过我的手机主动调试时;有时花了27分钟 . 我做了以下事情,并记下每个下面的解释 - 一个可能适合你:

    • 更改了我的gradle.properties文件(如果您在项目文件夹下有Android选项或项目文件夹下的项目文件视图,则在Gradle脚本下) . 我添加了这个,因为我的计算机有一些备用内存 - 你可以在最后根据你的计算机规格和android studio最低要求(Xmx8000m -XX:MaxPermSize = 5000m)分配不同的值:

    org.gradle.daemon = true org.gradle.configureondemand = true org.gradle.parallel = true android.enableBuildCache = true org.gradle.caching = true org.gradle.jvmargs = -Xmx8000m -XX:MaxPermSize = 5000m -XX :HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

    • 在我的案例中,这并没有完全解决我的问题 . 因此我也像其他人之前建议的那样做 - 让我的构建过程脱机:

    文件 - >设置/首选项 - >构建,执行,部署 - > Gradle全局Gradle设置(位于底部)选中名为“Offline Work”的复选框 .

    • 这大大减少了时间,但却不稳定;有时需要更长时间 . 因此我在Instant Run上做了一些更改:

    文件 - >设置/首选项 - >构建,执行,部署 - >立即运行选中:启用即时运行热插拔代码...选中:重新启动代码更改活动...

    • 上面的举动也不稳定,因此我试图找出问题是否可能是直接在我的手机和电脑上运行的进程/内存 . 在这里,我在手机和存储空间(占用率达到98% - 低至70%)以及任务管理器(Windows)上释放了一点内存空间,将Android Studio和Java.exe的优先级提高到了高位 . 谨慎地采取这一步骤;取决于你的电脑的记忆 .

    • 毕竟这是我在手机上主动调试时的构建时间有时下降到1~2分钟但有时飙升 . 我决定做一个 surprised me 的黑客攻击,把它降到最好的秒数,这个项目给了我22分27秒12秒!

    连接手机进行调试,然后单击RUN启动后,拔掉手机 - 构建应该继续更快并在结束时引发错误,指示:会话'app':错误安装APK重新连接手机并再次单击RUN .. .

    ALTERNATIVELY

    如果我正在调试的脚本/函数/方法纯粹是JAVA,而不是JAVA-android,例如使用JSONArrays / JSONObjects测试API,我在Netbeans上测试我的java函数/方法,它可以编译单个文件并更快地显示输出,然后对我的Android Studio文件进行必要的更改 . 这也节省了我很多时间 .

    EDIT

    我尝试在本地存储中创建一个新的android项目,并将我之前项目中的所有文件复制到新项目中 - java,res,manifest,gradle app和gradle项目(具有最新的gradle类路径依赖项) . 现在我可以在不到15秒的时间内在手机上构建 .

  • 15

    在build.gradle中,如果你有minifyEnabled进行调试,请删除它 . 我在我的项目中有它,并且花了大约2-3分钟来构建 . 在查看构建进度后,我发现这是罪魁祸首,因此删除下面的注释行,我的问题已修复 .

    buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }//debug{
             //   minifyEnabled true
             //   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}
    
  • 1

    我的电脑上有类似的问题 . Windows Defender阻止了Gradle Building的某些部分 . 我已经禁用它,之后工作正常 .

  • 0

    尝试重新启动计算机并再次运行Android Studio . 在尝试使用Android目标代码库构建Cordova / Phonegap项目时,为我工作 .

相关问题