我的 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
答案 0 :(得分:412)
在Android Studio中转到 档案 - >设置 - >构建,执行,部署 - >构建工具 - >摇篮
(如果在Mac上) Android Studio - >偏好... - >构建,执行,部署 - >构建工具 - >摇篮
检查“离线工作”'根据' Global Gradle设置'
它将减少90%的gradle构建时间。
如果您刚刚在Gradle中添加了新的依赖项,则必须取消选中脱机工作,否则gradle将无法解析依赖项。完成解析后,您可以查看离线工作以获得更快的构建
答案 1 :(得分:144)
如果您使用的是Google Play服务,请确保您未在Gradle构建脚本中使用此服务:
compile 'com.google.android.gms:play-services:8.3.0'
仅使用您的应用实际使用的那些Google API。如果你使用的只是谷歌地图,你可以使用:
com.google.android.gms:play-services-maps:8.3.0
当我这样做时,我的编译时间从2分钟到大约25秒。有关您可以有选择地编译的Google API的列表,请参阅:
答案 2 :(得分:43)
找到一种简单且最好的方法来构建gradle
转到您的应用>>打开你的gradle.properties并从中更改几行[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
答案 3 :(得分:33)
删除代理:File > Settings > Appearance & Behavior > System settings > HTTP Proxy
答案 4 :(得分:17)
启用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
答案 5 :(得分:16)
遵循这些步骤将使其快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
答案 6 :(得分:15)
推荐阅读: How I save 5h/week on Gradle builds!
根据这篇优秀的帖子,你应该尝试优化以下内容:
答案 7 :(得分:7)
@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
答案 8 :(得分:3)
检查您的互联网连接。如果互联网速度很慢,那么gradle build也需要很长时间才能构建。我检查通过改变我的无线互联网连接与另一个良好的速度连接。现在建立时间很正常。请在转到其他解决方案之前尝试此操作。有人会错误地决定重新安装或更改设置。我希望它会有所帮助。谢谢和问候。
答案 9 :(得分:2)
1)我在我的gradle文件中添加了一些新的库依赖项之后,我的构建时间严重增加,结果发现我之后需要使用multidex。当我正确设置multidex时,我的构建时间上升到2-3分钟。因此,如果您希望更快的构建时间,请避免使用multidex,并尽可能减少库依赖项的数量。
2)您也可以尝试启用&#34;离线工作&#34;在android studio中,就像这里建议的那样,这是有道理的。每次进行构建时都不会重新获取库。使用&#34;离线工作&#34;可能会减慢连接速度或代理/ VPN使用速度。禁用可能会导致构建时间变慢。
3)google服务 - 如此处所述,不要使用整个捆绑包,只使用它所需的部分。答案 10 :(得分:1)
我做的第二件事是卸载我的防病毒软件 (AVG Antivirus) {听起来很疯狂,但是,我不得不}。 它将 gradle 构建时间减少了 40%
我做的第一件事是启用离线模式 (1.通常点击编辑器右侧的Gradle 2.点击连接按钮切换) 它减少了高达 20%
的 gradle 构建时间所以通过做这两件事,我的Gradle 构建时间减少了60%
答案 11 :(得分:1)
答案 12 :(得分:1)
在Android studio 2.0的测试版中,他们推出了一项名为Instant Run的功能。它通过一个重要因素减少了构建时间。核心概念是,Android Studio仅推动对已经运行的应用程序所做的微小更改。
它将我们在代码中所做的更改分为三个部分:热插拔,热插拔和冷交换,基于更改对构建的负载量。之后,它只是交换已经运行的应用程序中的代码,我们可以看到更改运行几秒钟。有关详细信息,请参阅doc。
Here您可以下载Android Studio 2.0预览。
PS:此功能存在一些问题。他们已经在文档中列出了它。安装前请查看。
答案 13 :(得分:1)
我长时间遇到同样的问题,但我通过调整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
}
}
这会减少你的构建时间。
答案 14 :(得分:0)
如果您使用的是Windows 8 ...
DroidArc和AndroidDev解决方案哪里有用,但不是很有用。 我的问题与我的Windows 8操作系统及其100%的磁盘使用率有关。
特别是Windows搜索服务,是最耗费的。 禁用它:cmd(管理员)&gt; net.exe停止“Windows搜索”
我按照此链接中的说明解决了真正4 Tips to Fix 100% Disk Usage & Improve Windows Performance
的问题希望这有帮助。
答案 15 :(得分:0)
我在kotlin遇到了同样的问题。更新过时的kotlin运行时为我解决了它
答案 16 :(得分:0)
我遇到了类似的问题,尤其是在通过手机积极调试时;有时花了27分钟。我做了以下事情,并注意每一项下的解释-可能对您有用:
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设置(在底部)
选中名为“离线工作”的复选框。
文件->设置/首选项->构建,执行,部署->即时运行
已选中:启用即时运行以热插拔代码...
已选中:重新启动代码更改活动...
上面的操作也很不稳定,因此我试图找出问题是否出在直接在我的手机和计算机上运行的进程/内存。在这里,我释放了手机和存储中的少量内存空间(利用率为98%-降至70%),还释放了任务管理器(Windows),从而将Android Studio和Java.exe的优先级都提高了。谨慎地执行此步骤;取决于计算机的内存。
所有这些之后,我在手机上积极调试时的构建时间有时会减少到1〜2分钟,但有时会增加。我决定做一个让我吃惊的骇客,使我惊讶的是,而在给我22-27分钟的12个项目中,它却是12秒!
连接手机进行调试,然后单击“运行”
启动后,拔出手机的电源-构建过程应继续进行,并在结束时提示错误:会话'app':安装APK时出错
重新连接手机,然后再次单击RUN ...
替代
如果我要调试的脚本/函数/方法纯粹是JAVA,而不是JAVA-android,例如使用JSONArrays / JSONObjects测试API,我在Netbeans上测试了Java函数/方法,该Java函数/方法可以编译单个文件并更快地显示输出,然后对Android Studio文件进行必要的更改。这也节省了我很多时间。
编辑
我尝试在本地存储中创建一个新的android项目,并将所有文件从先前的项目复制到新的文件中-java,res,manifest,gradle应用程序和gradle项目(具有最新的gradle类路径依赖项)。现在,我可以在不到15秒的时间内建立手机。
答案 17 :(得分:0)
在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'}
答案 18 :(得分:0)
您可以尝试本文中的提示Why your Android Studio takes forever to build - Part 2,其中之一建议“启用离线模式”。
答案 19 :(得分:0)
在我的情况下,由于amazonaws
上存在一个依赖项,Gradle同步太长了。这是可以被禁用的 transitive 依赖项
答案 20 :(得分:0)
我遇到了同样的问题,即使gradle版本运行了8个小时,我也很担心。但是后来我像这样在 build.gradle 文件中更改了编译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
}
答案 21 :(得分:0)
在Android Studio中,版本3.6以上,有一个新位置可切换Gradle的离线模式以启用或禁用Gradle的离线模式。
要启用或禁用Gradle的离线模式,请从菜单中选择View > Tool Windows > Gradle
。在Gradle窗口的顶部栏中,单击Toggle Offline Mode
(在设置图标附近)。
图标上有些混乱,反之,当突出显示切换按钮时,就会启用离线模式。:)
答案 22 :(得分:-3)
我的电脑上有类似的问题。 Windows Defender阻止了Gradle Building的某些部分。 我已经禁用它,之后工作正常。
答案 23 :(得分:-40)
尝试重新启动计算机并再次运行Android Studio。在尝试使用Android目标代码库构建Cordova / Phonegap项目时为我工作。