Android Studio gradle的构建时间太长了

我的Android工作室项目过去构建更快,但现在需要很长时间来构建。知道是什么导致了延误吗? 我已经尝试了https://stackoverflow.com/a/27171878/391401,但没有效果。我没有运行任何可能中断构建的反病毒程序。我的应用程序在大小上也不是那么大(大约5 mb),它曾经在几秒钟内构建,但不确定发生了什么变化

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
351639 次浏览

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

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

如果你使用谷歌播放服务,确保你没有在你的Gradle构建脚本中使用这个:

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

只使用你的应用程序真正使用的谷歌api。如果你使用的是谷歌地图,你会使用这个:

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

当我这样做时,我的编译时间从2分钟多缩短到25秒左右。有关您可以选择性编译的谷歌api的列表,请参阅:

https://developers.google.com/android/guides/setup < a href = " https://developers.google.com/android/guides/setup " > < / >

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

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'

非常感谢

我很长一段时间都面临着同样的问题,但我通过调整gradle中的设置解决了它。

步骤1:在Module app中添加BuildScript中的依赖项

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

步骤2:添加dexOption并给出以下heapSize

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

第三步:添加产品口味

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


}
}

这将减少您的构建时间。

更新2022;谷歌remove "选择;

他们加上了“Donwload external annotations for dependencies"选项,但当然不勾选该选项并不能提供相同的速度提高。

回答

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

(如果是mac) Android工作室 ->首选项…→构建,执行,部署->构建工具->Gradle

检查“Global Gradle settings”下的“Offline work”

请注意:在新版本的Android studio中,View->Tool Windows->Gradle->Toggle button of online/offline

它将减少90% gradle构建时间。

check this to reduce build time

如果你刚刚在gradle中添加了一个新的依赖项,你将不得不取消离线工作,否则gradle将无法解析依赖项。在完成解析之后,你可以检查离线工作以获得更快的构建

在Android studio 2.0的测试版中,他们推出了一个名为即时运行的功能。它在很大程度上减少了构建时间。其核心理念是,Android Studio只会将一些小变化推送到已经运行的应用中。

它将我们在代码中所做的更改分为三部分:热插拔、热插拔和冷插拔,这是基于这些更改会给构建带来多大的负载。在那之后,它只是在已经运行的应用程序中交换代码,我们可以看到变化正在运行几秒钟。更多信息见他们的医生

在这里你可以下载Android Studio 2.0预览。

PS:这个功能有一些问题。医生都列出来了。安装前检查一下。

按照这些步骤将使其速度提高10倍,并将构建时间减少90%

首先创建一个名为gradle的文件。属性:

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

将这一行添加到文件中:

org.gradle.daemon=true


org.gradle.parallel=true
< p >推荐阅读: 我如何在Gradle构建上每周节省5小时 !< / p >

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

  • Gradle守护进程
  • 并行项目执行
  • 按需配置项目
  • 模块很贵……

找到了一个简单和最好的方法来构建gradle

去你的应用>>打开gradle。[remove ]

否则你可以复制粘贴我下面的片段以及

    # 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内存

我的电脑也有类似的问题。 Windows Defender阻塞了Gradle Building的某些部分。 我已经禁用了它,在那之后工作得很好

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

2)你也可以尝试在android studio中启用“离线工作”,就像这里建议的那样,这是有意义的。这将不会在每次构建时重新获取库。可能由于禁用了“脱机工作”而导致连接缓慢或代理/vpn使用缓慢可能导致构建时间变慢。

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

检查你的互联网连接。如果网速很慢,gradle构建也需要很长时间才能构建。我把我的wifi网络连接换成了另一个高速连接。现在构建时间正常了。在使用其他解决方案之前,请尝试一下这个方法。有人会做出错误的决定重新安装或更改设置。我希望它能有所帮助。谢谢和问候。

启用Java 8特性导致构建极其缓慢

gradle

 jackOptions {
enabled true
}


compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}

在删除上面的行之后,它在几秒钟内就会生成。

存在问题用Jack编译需要很长时间

项目经理的回答

我们知道构建时间对Jack来说是个问题。我们在2.4 Gradle插件中进行了改进,这对于增量构建来说应该是一个显著的改进。

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

检查Windows操作系统的磁盘使用情况…

问题可能与此有关,在我的情况下,我的Windows 8操作系统消耗了100%的磁盘使用率。

尤其是Windows搜索服务,可能是最消耗的。 用

禁用它

cmd(管理)

net.exe stop "Windows search"

检查这个链接4个技巧来修复100%的磁盘使用率&提高Windows性能

  1. 进入File->Setting- >Gradle- >将其设置为离线模式并检查

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

我遇到过这样的问题,尤其是通过手机主动调试时;有时需要27分钟。我做了以下事情,并记下每一项下的解释——其中一项可能对你有用:

  1. 改了我的gradle。properties文件(在Gradle脚本下,如果你有项目文件视图在Android选项下或在你的项目文件夹内)。我添加这个是因为我的电脑有一些空闲的内存-你可以在最后分配不同的值,这取决于你的电脑规格和android工作室的最低要求(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

  1. 这并没有完全解决我的问题。因此,我也做了其他人之前建议的事情——让我的构建过程离线:

文件->设置/首选项->构建,执行,部署-> Gradle

全局Gradle设置(在底部)

将复选框标记为:脱机工作。

  1. 这大大减少了时间,但它是不稳定的;有时需要更长的时间。因此,我对即时运行做了一些更改:

文件->设置/首选项->构建,执行,部署->即时运行

选中:启用立即运行热插拔代码…

检查:代码更改时重新启动活动…

  1. 上面的动作也不稳定,因此我试图找出问题是否可能是直接在我的手机和电脑上运行的进程/内存。在这里,我释放了一点内存空间在我的手机和存储(98%的利用率-下降到70%),也在任务管理器(Windows),增加Android Studio和Java.exe的优先级为高。小心地迈出这一步;这取决于你电脑的内存。

  2. 在这之后,我在手机上积极调试的构建时间有时会减少到1 ~ 2分钟,但有时会激增。我决定做一个hack, 令我惊讶通过将它降至秒,在同一个项目上给我22 - 27分钟是12秒!:

连接电话进行调试,然后单击RUN

在它开始后,拔下电话-构建应该继续更快,并在结束时引发一个错误,指出这一点:Session 'app':安装APKs错误

重新连接电话并再次单击RUN…

另外

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

编辑

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

在你的构建中。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'}

你可以尝试这篇文章中的提示为什么你的Android Studio需要永远的构建-第2部分其中一个提示建议“启用脱机模式”。

我也有同样的问题,甚至gradle构建运行了8个小时,我很担心。但后来我在< em > build.gradle < / em >文件中更改了编译sdk版本和最小sdk版本。

年龄:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"


defaultConfig {
applicationId "com.uwebtechnology.salahadmin"
minSdkVersion 9
targetSdkVersion 25
}

新(更新):

android
{
compileSdkVersion 28
buildToolsVersion "25.0.2"


defaultConfig {
applicationId "com.uwebtechnology.salahadmin"
minSdkVersion 15
targetSdkVersion 28
}

在Android Studio中,以上版本3.6,有一个新的位置来切换Gradle的离线模式来启用或禁用Gradle的离线模式。

要启用或禁用Gradle的离线模式,请从菜单中选择View > Tool Windows > Gradle。在Gradle窗口的顶部栏中,单击Toggle Offline Mode(设置图标附近)。

enter image description here

不管怎样,这个图标有点令人困惑,当切换按钮高亮显示时,启用离线模式。:)

我做的第二件事是卸载我的杀毒软件(AVG Antivirus) {听起来很疯狂,但我必须这么做}。 它减少gradle构建时间到40%

我做的第一件事是启用离线模式 < em >(1。通常在编辑器的右侧点击Gradle 2. 点击连接按钮切换) 它减少了gradle构建时间,直到20%

所以我的Gradle构建时间通过做这两件事被减少到60%

在我的情况下,经过几天的研究和尝试一切,我不得不降级Kotlin版本! 我使用的是最新的1.6.20(04 / 2022),我尝试了1.6.0版本,它是一样的,我不得不降级到1.5.32 从从未构建(我等了26个小时,仍然在运行)到几秒钟....