Android build gradle太慢(依赖项解析)
我已经在安卓工作室(我目前的1.5版)工作了两年。一切正常,但当我下载金丝雀(2.1 p5)时,一切都出了问题。每次我想创建一个新项目、打开一个项目、同步或导入一个新的库或依赖项时,gradle花费的时间太长了-将近20分钟 我什么也没做,只是下载了金丝雀版本并运行了它 症状:Android build gradle太慢(依赖项解析),android,android-studio,gradle,android-gradle-plugin,build.gradle,Android,Android Studio,Gradle,Android Gradle Plugin,Build.gradle,我已经在安卓工作室(我目前的1.5版)工作了两年。一切正常,但当我下载金丝雀(2.1 p5)时,一切都出了问题。每次我想创建一个新项目、打开一个项目、同步或导入一个新的库或依赖项时,gradle花费的时间太长了-将近20分钟 我什么也没做,只是下载了金丝雀版本并运行了它 症状: 这件事发生在我上网的时候 第一个延迟发生在Gradle:Resolve dependencies:app:_debugCompile' 25分钟后,建筑几乎完成 注意: 当我断开互联网时,gradle会尽快完成 我试
我试图通过以下方法解决此问题:
C:\Users\username\.gradle
中创建了一个新文件(文件名为gradle.properties
),然后将这些行写入其中
org.gradle.parallel=true
org.gradle.daemon=true
系统信息:
- CPU:Intel Core i5
- 内存:6.00GB
- 操作系统:Windows 8.1 64位
build.gradle(项目名称:appName) gradle.build(模块:应用程序) 建筑后的渐变报告
Dependencies Duration
All dependencies 14m3.43s
:app:_releaseCompile 3m30.96s
:app:_debugCompile 3m30.73s
:app:_debugApk 3m30.69s
:app:_releaseApk 3m30.62s
:classpath 0.428s
:app:_debugAndroidTestCompile 0.001s
:app:_debugAndroidTestApk 0s
:app:_debugUnitTestApk 0s
:app:_debugUnitTestCompile 0s
:app:_releaseUnitTestApk 0s
:app:_releaseUnitTestCompile 0s
:app:releaseWearApp 0s
:app:wearApp 0s
安装android studio 2.0稳定版后
- 下午7:23:47渐变同步开始===> 晚上8:13:21渐变同步完成
classpath'com.android.tools.build:gradle:1.5.0'
到
及
更改buildToolsVersion“23.0.3”
到
并使用安卓studio 2.0稳定版。
请告诉我您需要更多详细信息,否则此解决方案对您无效。问题已解决!
经过2天的搜索,我得到了解决方案,因此我想与所有可能有相同问题的人分享。问题是gradle
无法连接到某些国家/地区的中心存储库。当您创建新项目或导入时,您的中心存储库是jcenter()
默认情况下,无论何时您想要构建、同步或添加新的外部依赖项,gradle
将连接到,但无法连接,构建过程将等待连接到jcenter()
,因此此过程可能需要较长时间(+30分钟),即使您无法添加新的依赖项
解决方案:
classpath'com.android.tools.build:gradle:2.0.0'
)buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
玩得开心我看到了另一个问题。该解决方案可能会对某人有所帮助
最近,我在系统环境变量下设置了http_代理和https_代理。我必须删除它们,然后在studio设置中设置代理。除了上面的@Mehdi Jahed Manesh answer 使用
org.Gradle.jvmargs
属性将分配给Gradle守护程序VM的内存量增加1 Gb,至少增加2 Gb,如下所示:
org.gradle.jvmargs=-Xmx2048m
在我的例子中,我通过安装新版本的JavaJDK解决了这个问题。
安装新的JDK后,以打开方式打开,转到文件→项目结构→SDK位置,并将JDK位置更改为新版本Java JDK的位置。然后将要求您获得防火墙权限;检查Public并应用。让它解析gradle。初始生成完成后,请尝试从gradle设置启用脱机模式。这样,每个连续生成都不会开始解析依赖项,反之亦然ad从缓存中获取。如果添加新的依赖项,它将提示您禁用脱机模式并重新生成它。您可以优化gradle生成过程 尝试将gradle置于脱机模式,强制在不连接外部存储库的情况下进行构建,如下所示:
org.gradle.jvmargs=-Xmx2048m
这对我帮助很大,因为在我的工作中,所有连接都在代理之后,这会增加构建时间
如果这还不够,请花点时间测试Gradle>Experimental上的选项……有些选项可能会提高您的性能:
注意:在新版Android studio中,视图->工具窗口->渐变->在线/离线切换按钮
如前所述,将渐变置于离线模式对我来说很有效
对于那些使用需要身份验证的存储库的用户,可以通过将gradle配置为仅使用单个身份验证方案来解决此问题:
repositories {
maven {
credentials {
username INTERNAL_REPO_USERNAME
password INTERNAL_REPO_PASSWORD
}
// here comes the important part
authentication {
basic(BasicAuthentication)
}
url INTERNAL_REPO_URL
}
}
事实证明,在对存储库进行身份验证时,gradle会尝试使用所有类型的方案进行身份验证。上述配置使gradle仅使用基本身份验证。这是可用方案的完整列表。请查看此报道。它可能与gradle无关,但它可以在不做太多更改的情况下加快构建速度:
https://android.jlelse.eu/is-your-android-studio-always-slow-heres-how-to-speed-up-immediately-326ef9238024
停止gradle下载并单击文件->“将项目与gradle文件同步”完全发布的Android Studio 2.0现在可用,因此无需使用金丝雀版本。这样,您还应该更新您的
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
org.gradle.jvmargs=-Xmx2048m
gradlew assembleReleaseStaging(your task name) --offline
repositories {
maven {
credentials {
username INTERNAL_REPO_USERNAME
password INTERNAL_REPO_PASSWORD
}
// here comes the important part
authentication {
basic(BasicAuthentication)
}
url INTERNAL_REPO_URL
}
}