ChatGPT解决这个技术问题 Extra ChatGPT

通过 Gradle 和 Android Studio 构建和运行应用程序比通过 Eclipse 慢

我有一个多项目(约 10 个模块),每次构建大约需要 20-30 秒。当我在 Android Studio 中按 Run 时,我每次都必须等待重新构建应用程序,这非常慢。

是否可以在 Android Studio 中自动化构建过程?或者你对如何加快这个过程有什么建议?

在 Eclipse 中,由于自动构建,在模拟器上运行相同的项目大约需要 3-5 秒。

这是我的 build.gradle 文件(应用程序模块):

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:SharedLibs')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:FacebookSDK')
    compile project(':libraries:GooglePlayServices')
    compile project(':libraries:HorizontalGridView')
    compile project(':libraries:ImageViewTouch')
    compile project(':libraries:SlidingMenu')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}
请记住,基于 Gradle 的构建系统和 Android Studio 目前都不是生产级的。
在这里花费的时间很可能是在 DEXing 阶段。不幸的是,android studio 的 make 似乎每次都执行一次清理,导致之前的 dex 文件被删除。希望我们很快就会看到增量构建修复。
同时,是否有任何简单的方法可以告诉更改默认 Gradle 任务,以使它们不总是执行清理?
@CommonsWare 好吧,现在我们使用的是 1.02 版,没有任何借口,但这仍然是一个主要问题。在运行 Android Studio 时,我的 4GB 四核笔记本电脑使用了大约 3.75GB 的内存,只保存了一个 hello world 项目的单个实例。因此,它也非常缓慢。对我来说,这表明存在严重且持续存在的设计缺陷。我希望事情能尽快解决。
@AndrewS 我觉得很遗憾我们需要更改我们的操作系统只是为了让 gradle 与以前的工具相比以合理的速度运行。

C
Community

硬件

很抱歉,将开发站升级到 SSD 和大量内存的影响可能比以下几点加起来还要大。

工具版本

提高构建性能是开发团队的首要任务,因此请确保您使用的是最新的 GradleAndroid Gradle Plugin

配置文件

在适用的任何目录中创建一个名为 gradle.properties 的文件:

/home/<用户名>/.gradle/ (Linux)

/Users/<用户名>/.gradle/ (Mac)

C:\Users\<用户名>\.gradle (Windows)

附加:

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.krd1mm27v
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -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

# Enables new incubating mode that makes Gradle selective when configuring projects. 
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

# Set to true or false to enable or disable the build cache. 
# If this parameter is not set, the build cache is disabled by default.
# http://tools.android.com/tech-docs/build-cache
android.enableBuildCache=true

如果您将 Gradle 属性放置在 projectRoot\gradle.properties,则它们在本地工作;如果将它们放置在 user_home\.gradle\gradle.properties,则全局工作。如果您从控制台或直接从想法运行 gradle 任务,则应用属性:

IDE 设置

可以从 IDE 设置 GUI 调整 Gradle-IntelliJ 集成。启用“离线工作”(检查下面 yava 的答案)将禁用每个“同步 gradle 文件”上的真实网络请求。

https://i.stack.imgur.com/hGnDg.png

原生多索引

apk 构建中最慢的步骤之一是将 java 字节码转换为单个 dex 文件。启用本机 multidex(minSdk 21 仅用于调试构建)将有助于工具减少工作量(检查下面 Aksel Willgert 的答案)。

依赖项

首选 @aar 依赖项而不是库子项目。

mavenCentraljCenter 上搜索 aar 包或使用 jitpack.io 从 github 构建任何库。如果您不编辑依赖库的源代码,则不应每次都使用项目源代码构建它。

杀毒软件

考虑从防病毒扫描中排除项目和缓存文件。这显然是与安全性的权衡(不要在家里尝试这个!)。但是如果你在分支之间切换很多,那么杀毒软件会在允许 gradle 进程使用它之前重新扫描文件,这会减慢构建时间(特别是 AndroidStudio 同步项目与 gradle 文件和索引任务)。在启用和不启用防病毒软件的情况下测量构建时间和进程 CPU 以查看是否相关。

分析构建

Gradle 内置了对 profiling projects 的支持。不同的项目使用插件和自定义脚本的不同组合。使用 --profile 将有助于发现瓶颈。


关于@aar depedencies:使用例如 dependencies {compile 'com.android.support:support-v4:21.0.+'} 是一个缓慢的解决方案?不确定
成像,您添加了这样的库:github.com/novak/numberpicker。它有价值,为问题提供代码解决方案,但作者没有像 maven 或 jCenter 那样在任何地方发布它。现在,您要么将该库作为源代码带入您的项目并在每次主项目构建时构建它,或者一次编译它并仅将 @aar 提交到您的项目存储库中。所以它真的是一个源/二进制依赖的选择。如果您不编辑源代码,您应该将您的依赖项作为预编译的二进制文件。对于 .jar 的普通 java 库,对于 .aar 的 android 库
这是项目设置>毕业。请参阅下面的屏幕截图:i.stack.imgur.com/wrwgo.png
我已经按照描述设置了所有优化,但是在 Android Studio 中启动我的应用程序需要 3 到 4 分钟,而在 Eclipse 中大约需要 30 秒。废话。只有 12 个项目,一个应用程序可以运行! Android 开发现在变得如此繁琐,而那是一年多之后的事了。
我应用了所有优化,构建 HelloWorld apk 仍然需要大约 20 秒,而在 Eclipse 中需要 2-3 秒。
N
Nathan

您可以忽略 gradle update-to-date 检查。

https://i.stack.imgur.com/wrwgo.png

对于运行 Android Studio 1.5 的 Windows:转到 File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

从~30+秒降低到~3秒


这很酷。那要快很多。但这打破了什么?
最佳解决方案。我能知道这个解决方案的副作用吗
@JohnBallinger 离线工作 - 使用此复选框在离线模式下使用 Gradle。在这种情况下,Gradle 将使用缓存中的依赖项。 Gradle 不会尝试访问网络来执行依赖解析。如果依赖项的缓存中不存在所需的依赖项,则构建执行将失败。 (来源:jetbrains.com/idea/help/gradle-2.html
在通过网络之前是否默认先使用缓存的依赖项?我无法想象每次运行 gradle 时都会检查更新的依赖项。这很奇怪。
@EhteshChoudhury 这很奇怪。整个 Gradle/Android Studio 开发环境太慢了。大多数人认为它很慢是因为 Java。我在 IDEA 上做服务器端 Java 开发,事情运行得非常顺利。
N
Nathan

到处搜索,终于找到了适合我们的解决方案。启用并行构建(在 OSX 上:preferences -> compiler -> gradle -> "Compile independent modules in parallel")并启用“自动生成项目”将其从约 1 分钟降至约 20 秒。感谢/u/Covalence。

http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/


请记住,这显然仅在您拥有多个独立模块/项目时才有帮助。我已经在单个模块应用程序上对其进行了测试,但没有任何区别。
我有一个相当大的项目,在 MacBook Pro 2012 Core i7、8 GB RAM 上需要 2 到 3 分钟。可以吗?
A
Andreas Løve Selvik

我最近购买了一个新的 SSD,并从 Windows 转到了 Linux。我的构建时间现在快了一个数量级,并且不再烦人。

尽管它没有直接回答您关于为什么它比 eclipse 慢的问题,但它表明该过程是受磁盘限制的,并且升级到 SSD 可能是一个(有些昂贵的)解决方案。我猜会有人在谷歌上搜索这个问题并在这里结束,他们可能会欣赏我的经验。


我团队的开发人员在具有大量内存的快速机器中拥有快速 SSD。对于一个不平凡的应用程序,与在 Eclipse 中几乎立即重新部署相比,在进行小的代码更改后重新部署仍然需要大约 45 秒。即使运行一个普通的非 Android JUnit 也非常慢。到目前为止,“升级”到 Android Studio 和 Gradle 已经是一个很大的降级。 :-/
@Lionleaf 从 windows 切换到 linux 的速度有多快?
@younes0 我不知道。我在切换到 SSD 的同时切换到 Linux。我并不是说它有任何积极的影响,我只是为了加速而改变了这两个变量。
在我的情况下,从 Windows 切换到 Linux 导致 Android 构建速度提高了 40%……所以这绝对值得
我赞同@Bartosz Kosarzycki 所说的话。我最终在我的开发机器上运行了一个带有 virtualbox 的 Ubuntu vm。在 Windows 上构建约 54 秒,在同一硬件上的虚拟机内进行相同构建约 7 秒。通过迁移到 Linux 实现了疯狂的加速。
A
Ahmad Aghazadeh

在 Android Studio 3.2.1 中加速 Gradle 构建

有没有觉得您正在等待 Android Studio 中的构建完成几分钟?我也是。这很烦人。幸运的是,有几种方法可以用来改进这一点。 Android 使用 Gradle 进行构建。最新版本是 4.6,与以前的版本相比有巨大的性能提升(有关详细信息,请参阅发行说明)。

第 1 步:更新 Gradle 版本完成此操作的更简单方法是:打开模块设置(您的项目)> 项目结构

https://i.stack.imgur.com/xFm0I.png

更新

更改为 Gradle 版本:4.6 并更改为 Android 插件版本:3.2.1

https://i.stack.imgur.com/2hNtg.png

https://services.gradle.org/distributions/gradle-4.6-all.zip 下载 Gradle Release 分发包并将其复制到 Gradle 文件夹:

https://i.stack.imgur.com/DNm1e.png

最后一步是在 Settings > Gradle 中添加您的分配

https://i.stack.imgur.com/jOrQL.png

不要忘记单击应用以保存更改。

第 2 步:启用离线模式、Gradle 守护进程和项目的并行构建离线模式告诉 Gradle 忽略更新到日期检查。 Gradle 每次都要求依赖项,并且具有此选项使其仅使用机器上已有的依赖项。从 android studio Setting 转到 Gradle,然后单击 Offline work 框。

https://i.stack.imgur.com/2HeBg.png

从 android studio Setting 中进入 Compiler 并在命令行框中添加“--offline”,然后点击 Compile Independent modules in parallel。

https://i.stack.imgur.com/W9cgJ.png

下一步是为您的项目启用 Gradle 守护程序和并行构建。并行构建将导致您的具有多个模块的项目(Gradle 中的多项目构建)并行构建,这应该会使大型或模块化项目的构建速度更快。

https://i.stack.imgur.com/Vhps7.png

这些设置可以通过修改 Gradle 脚本目录(即 ~/.gradle/gradle.properties)中名为 gradle.properties 的文件来启用。其中一些选项(例如 Complie 并行模块)可从 Android Studio 获得,也可以通过默认,但将它们放在 gradle.properties 文件中将在从终端构建时启用它们,并确保您的同事将使用相同的设置。但是如果你在一个团队中工作,有时你不能提交这些东西。

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
 org.gradle.daemon=true

使用守护进程将使您的构建启动更快,因为它不必每次都启动整个 Gradle 应用程序。 Gradle 守护程序默认不启用,但建议始终为开发人员的机器启用它(但对持续集成服务器禁用它)。有关此模式的常见问题解答可在此处找到 https://docs.gradle.org/current/userguide/gradle_daemon.html。对于某些项目,并行构建设置可能不安全。要求是您的所有模块都必须解耦,否则您的构建可能会失败(有关详细信息,请参阅 http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects)。

第 3 步:启用增量 dexign 并调整内存设置您可以通过打开增量 dexing 来加快构建速度。在模块的构建文件中:

https://i.stack.imgur.com/eWQwO.png

将此选项添加到您的 android 块:

dexOptions {
    incremental true
}

在该 dexOptions 块中,您还可以指定 dex 进程的堆大小,例如:

dexOptions {
    incremental true
    javaMaxHeapSize "12g"
}

其中“12g”是 12GB 内存。可以在此处找到有关此的其他信息 google.github.io/android-gradle-dsl/current/ 您还可以在设置文件中配置 Gradle 参数,例如,如果您有一个大型项目,请增加最大堆大小:

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

在此处查看所有参数列表:https://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_properties 了解详细信息。

第 4 步:禁用防病毒 考虑从防病毒扫描中排除项目和缓存文件。这显然是与安全性的权衡。但是如果你在分支之间切换很多,那么杀毒软件会在允许 gradle 进程使用它之前重新扫描文件,这会减慢构建时间(特别是带有 gradle 文件和索引任务的 Android Studio 同步项目)。在启用和不启用防病毒软件的情况下测量构建时间和进程 CPU 以查看是否相关。我希望这有帮助。如果您对提高构建性能有任何疑问或其他提示,请发表评论。

helpful link


A
Aksel Willgert

如果使用 google play 服务,只依赖于你需要的库而不是整个 blob 可以让事情变得更快。

如果您只需要地图,请使用:

compile 'com.google.android.gms:play-services-maps:6.5.+'

代替:

compile 'com.google.android.gms:play-services:6.5.+'

后者将 20k 方法 (see blog) 带入类路径,这可能会使总方法计数超过 64k。

这将强制使用 proguard 或 multidex,即使是调试版本。对于我的一个项目,我有以下构建时间

multidex 构建(带有支持库)~40 秒

proguard build ~20sec

当方法限制 < 64k ~5sec 时构建

如果在 sdk 21+ 上开发,则可以按照所述 in the android documentation 优化 multidex 构建

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
    ...
}

我没有编译所有的 play-service 库,而是只编译了 mapslocations 并禁用了 multidex。我觉得差别很大。谢谢+1
A
Andrii Abramov

公认的答案适用于旧版本的 android studio,其中大多数现在仍然有效。更新 android studio 让它更快一点。不要费心指定堆大小,因为它会随着 Xms 和 Xmx 的增加而自动增加。这是对 VMoptions 的一些修改

在 bin 文件夹中有一个 studio.vmoptions 文件来设置环境配置。在我的情况下,这是 studio64.vmoptions 如果尚未添加以下行,请添加以下行并保存文件。就我而言,我有 8GB RAM。 -Xms4096m -Xmx4096m -XX:MaxPermSize=2048m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8` 启动android studio。转到 File-> Settings-> Build, Execution, Deployment-> Compiler 检查并行编译独立模块在命令行选项中写入:--offline 检查 Make project automatically 检查按需配置

在使用mac的情况下,起初我找不到vmoptions。无论如何,这是一个nice article about how we can change the vmoptions in MAC OSX。在这里引用这篇文章。

打开您的终端并输入以下命令以在 MAC OSX 中打开 vmoptions:

open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

从 AS 2.3.2 开始,您可以通过 help-> Edit Custom Vm Options 更改 vim 选项
J
Jared Burrows

只需在以下目录中创建一个名为 gradle.properties 的文件:

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

将此行添加到文件中:

org.gradle.daemon=true

对我来说,速度现在等于 Eclipse。

来源:https://www.timroes.de/2013/09/12/speed-up-gradle/


我无法在 mac 中看到 .gradle 文件夹。如何打开它?
@Dharmik:也许您以不同的用户名安装了 Android Studio。否则,我猜它没有正确安装。
不,这是其他问题..“.gradle”系统文件夹被隐藏了..所以我转到 Go=>Go To Folder 并找到 .gradle 文件夹..感谢您的快速回复..
r
rivare

如果您从命令行使用 gradle,您可以加快该过程。 IDE 开发人员需要做很多优化。但这只是一个早期版本。

如需了解更多信息,请阅读 this discussion 与一些开发人员一起了解 g+。


即使在 2016 年的现在,这似乎也是正确的
G
Gent

如果有人正在处理一个通过 Subversion 同步的项目并且这种情况仍在发生,我认为这会减慢 Android Studio 中的工作流程。例如,如果它在以下情况下工作非常缓慢:在类、xml 等中滚动,而我的应用程序仍在我的设备上运行。

转到 Preferences 中的 Version Control,然后从 Subversion 设置为 None。


您节省了我的时间:2/4 分钟 -> 15 秒(我为项目禁用了 Tortoise HG)。
如果有人仍在使用 Subversion,他们应该切换到 Git 或 Mercurial
S
Shaishav Jogani

Android Studio 2.3 之后更新

所有答案都很棒,我鼓励将这些方法与这个一起使用以提高构建速度。

在 2016 年 9 月发布 android 2.2 之后,Android 发布了实验性构建缓存功能以加快 gradle 构建性能,该功能现已从 Android Studio 2.3 Canary 正式发布。 (Official Release note)

它引入了一个新的构建缓存功能,默认启用,可以通过存储和重用在相同或不同 Android 的先前构建中创建的文件/目录来加快构建时间(包括完整构建、增量构建和即时运行)项目。

如何使用:

在您的 gradle.properties 文件中添加以下行

android.enableBuildCache = true
# Set to true or false to enable or disable the build cache. If this parameter is not set, the build cache is enable by default.

清理缓存:

有一个名为 cleanBuildCache 的新 Gradle 任务可以让您更轻松地清理构建缓存。您可以通过在终端中键入以下内容来使用它:./gradlew cleanBuildCache

或者您可以通过删除存储在位置 C:\Users\\.android\build-cache 的所有文件来清理 Android Studio 2.2 的缓存


M
Mr Robot

更改此设置后,我的编译持续时间 10 分钟更改为 ~10 秒。

步骤1:

Settings(ctrl+Alt+S) -> Build,Execution,Deployment -> Compiler -> 在命令行选项框中输入“--offline”。

第2步:

选中“并行编译独立模块”复选框。 & 单击应用 -> 确定

https://i.stack.imgur.com/gjRRV.png

参考 - https://www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio

坏处:

您将无法下载 build.gradle 文件中标识的最新版本的依赖项。它运行得更快,因为它使用了这些导入库的缓存快照。

重要提示:部署应用程序时,请删除此设置并使用最新版本的依赖项进行构建。


M
Mr Robot

解决了我的问题

文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Gradle -> 离线工作

Gradle 构建从 8 分钟缩短到 3 秒。


G
Greg

以下是帮助这位初级 Android 程序员(多年前曾是专业程序员)加速 Android Studio 2.2 的原因。我知道这是一个重复,但是,只是在一个地方总结。

初始构建仍然可能非常缓慢,但现在正在运行的应用程序的重新启动通常是可以容忍的。我使用的是次优 PC:AMD 四核 A8-7410 CPU、8MB RAM、非 SSD HD、Win 10。(而且,这是我第一次在 Stack Overflow 上发帖……;)

在设置-> 分级:

是的“离线工作”(这可能是最重要的设置)。

在设置-> 编译器中:

是的“并行编译独立模块”(不确定这是否确实有助于利用多核 CPU)。

在 GRADLE 脚本中,“build.gradle(模块:app)”:

defaultConfig {
    ...
   // keep min high so that restarted apps can be hotswapped...obviously, this is hugely faster.
   minSdkVersion 14
   ...
    // enabling multidex support...does make big difference for me.
    multiDexEnabled true

也在 GRADLE 脚本中,“gradle.properties(项目属性)”:

org.gradle.jvmargs=-Xmx3048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true org.gradle.daemon=true

此外,在物理设备而不是模拟器上进行测试对我来说效果很好;立起来的小平板很方便。


L
Leśniakiewicz

只是另一个性能改进提示:

Android Studio 3.0 包含名为 D8 的新 DEX 编译器。

“dex 编译器主要在您的日常应用程序开发中工作,但它直接影响您的应用程序的构建时间、.dex 文件大小和运行时性能。”

“当将新的 D8 编译器与当前的 DX 编译器进行比较时,D8 编译速度更快,输出更小的 .dex 文件,同时具有相同或更好的应用运行时性能。”

D8 是可选的 - 使用它我们必须把它放到项目的 gradle.properties

android.enableD8=true

更多信息:https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

PS。它使我的构建时间缩短了大约 30%。


M
MoaLaiSkirulais

这个设置对我来说真的很快(大约 2 秒构建)

构建.gradle

android {

    dexOptions {
        incremental true
        preDexLibraries = false
        jumboMode = false
        maxProcessCount 4
        javaMaxHeapSize "6g"
    }
}

gradle.properties

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx8192M

我的电脑:

CPU Intel(R) Pentium(R) CPU G2030 @ 3.00GHz, 3000 Mhz, 2 procesadores principales, 2 procesadores lógicos

x64

微软视窗 7 专业版

(RAM) 16,0 GB

项目文件 - 全部位于本地高清


v
vinod

请按照以下步骤操作。

启用离线模式:请检查下面的打印屏幕。 https://i.stack.imgur.com/RF9uG.png 启用即时运行:请检查下面的打印屏幕。 https://i.stack.imgur.com/mvHKJ.png 如果您想了解更多关于即时运行的信息,请访问 android 开发者网站。


S
SBC

您可以尝试打开 studio 右侧的 gradle 菜单,只组装您更改的模块,然后运行 install 命令。当您按下运行时,它会组装所有内容,而不管您可能对其正在组装的代码所做的任何更改


c
cifuentes

我远非 Gradle 专家,但我的环境在 .gradle/init.gradle 中有以下行

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenRepo name: 'libs-repo', url: 'http://guest-vm/artifactory/repo'
        }
    }
}

但是我不知道为什么那条线在那里,但是我尝试更改为

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenCentral()
        }
    }
} 

现在我终于可以不用对 Android Studio 和 Gradle buildind 方案发誓了。


在您的情况下,工件可能被用作库缓存。您联系工件服务器,看看它是否有库。如果是,它将返回给您,否则它会从 mavencentral 获取它,然后返回给您。
H
Henrique de Sousa

在我们的具体案例中,问题是由于使用了 retrolambda 插件,它强制所有项目和子项目在我们每次尝试启动应用程序时重新编译,即使我们的核心模块中没有更改任何代码。

删除retrolamba 为我们修复了它。希望它可以帮助某人。


N
NIKHIL C M

先试试这个。这是我的个人经历。

我有同样的问题。我所做的只是永久禁用防病毒软件(我的是 Avast Security 2015)。禁用杀毒软件后,一切顺利。 gradle 成功完成。从现在开始,gradle 将在几秒钟内完成(只需 5-10 秒)。


m
max

嗨,我知道这是非常晚的答案,但也许可以帮助我正在使用的人

compile 'com.android.support:support-v4:23.1.1'

在我的应用程序 Gradle 依赖项中,但在我的一个库中是

 compile 'com.android.support:support-v4:23.0.1'

全部更改为最新版本后,我的问题解决了。


B
Biswajit Karmakar

遵循这些步骤将使其速度提高 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

并在 Android Studio 中检查此选项

https://i.stack.imgur.com/1y4t4.png


C
Community

使用这个 sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

Android Studio fails to build new project, timed out while wating for slave aapt process


J
Jon Goodwin

一个微不足道的更改(到资源 xml)仍然需要 10 分钟。正如@rivare 在他的回答中所说,命令行构建速度更快(将其缩短到 15 秒)。这里有一些步骤至少可以从 Windows 的命令行快速构建一个简单的构建。

转到您的项目根目录(gradlew.bat 所在的位置): cd c:\android\MaskActivity 执行构建: gradlew assembleDebug 直接从手机中卸载 apk(将其拖动卸载)。构建完成后,使用 Windows 任务管理器终止 BIG java 进程。

或者,如果您的 Windows 机器上有 unix 工具:

ps

显示“pid”:

kill -9 <pid>

现在安装你的apk: adb -d install C:\Android\MaskActivity\app\build\outputs\apk\app-debug.apk


A
Allan

根据android documentation,在app模块的gradle文件中添加这个。

android {
    ...
    dexOptions {
    preDexLibraries true
    maxProcessCount 8
    }
}

S
Smit Patel

在低配置机器上运行 Android 环境。

关闭浏览器中不必要的 Web 选项卡 对于防病毒用户,排除自动生成的构建文件夹 Android Studio 有 1.2 Gb 默认堆可以减少到 512 MB 帮助 > 编辑自定义 VM 选项 studio.vmoptions -Xmx512m 布局性能将加快对于 Gradle Android Studio Mkae 的核心组件之一肯定像现在一样 3.0beta 是最新的

以下提示可能会影响代码质量,因此请谨慎使用:

Studio 包含电源安全模式,打开时它将关闭 lint、代码完成等后台操作。您可以在需要时手动运行 lintcheck ./gradlew lint 大多数使用 Android 仿真器平均消耗 2 GB RAM,因此如果可能,请使用实际的 Android 设备,这将减少您计算机上的资源负载。或者,您可以减少模拟器的 RAM,它会自动减少计算机上的虚拟内存消耗。您可以在虚拟设备配置和高级设置中找到它。 Gradle 离线模式是带宽受限用户禁用下载构建依赖项的功能。它将减少后台操作,这将有助于提高 Android Studio 的性能。 Android Studio 提供了并行编译多个模块的优化。在低 RAM 机器上,此功能可能会对性能产生负面影响。您可以在编译器设置对话框中禁用它。


r
rbansal

我受够了本地机器上缓慢构建的 android。我解决这个问题的方法是在 AWS 上启动一台高端机器并将代码从我的本地同步到机器并在那里编译。

我看到性能立即提高,并且我的本地系统从 CPU hog 中拯救出来。查看我为帮助开发人员加快终端速度而创建的此工具 https://stormyapp.com