安卓工作室1.0构建速度太慢

19

我将Android Studio从0.9x升级到1.0 RC(包括1和2),我的项目构建时间从20秒增加到了约90秒。

有人遇到同样的问题吗?

更新

在终端上运行相同的任务,我发现“解析依赖项”步骤花费了大部分额外的时间。

更新2

感谢@bond的提示,我注意到离线会将构建时间降低到约30秒,因此我尝试在build.gradle中使用mavenLocal(),但是也没有成功。

顶层build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenLocal()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
    }
}

我的项目构建时间从20秒增加到约90秒。在“20秒”情况下,你是使用什么构建工具?换句话说,我们将AS 1.0RC与哪个早期版本进行比较?是Eclipse、命令行Gradle for Android、Ant、IntelliJ IDEA、NetBeans还是其他工具? - CommonsWare
您在“首选项”->“编译器”(Gradle)选项卡下是否有“自动构建项目”的选项? - MLProgrammer-CiM
@CommonsWare,我已经编辑了这个问题。 - Cheborra
你可能需要更好的CPU和更多的RAM,我在我的开发机器上有8GB的RAM,否则它会很糟糕(这就是为什么我过去使用ADT的原因)。 - EpicPandaForce
可能是一些配置问题。你尝试过重置Android Studio了吗? - free3dom
6个回答

32
在编译器设置中(Android Studio -> 首选项 -> 项目设置[你的项目] -> 编译器(基于Gradle的Android项目)),在“命令行选项”框中输入--offline。这将把编译时间从大约4分钟缩短到大约20秒。

谢谢!从大约8分钟缩短到大约40秒(在公司防火墙后面)。 - dawid
谢谢,这里的时间从4分钟缩短到了约15-20秒! - Cheenu Madan
1分钟变成10秒钟,太神奇了! - David Boyd
使用这个小技巧,将编译时间从超过4分钟缩短到不到20秒!固态硬盘讨厌他! - Kevin
你真是个救星。这太重要了! - Nancy
显示剩余2条评论

29

我最初在线上构建,之后切换到离线模式。

Gradle Options

这将构建时间降低到了约14秒。

我猜测gradle尝试在线解析依赖项,忽略了我的“mavenLocal()”(以及所有其变体)。


1
对于无法找到Gradle离线设置的“新手”(Android Studio 1.5.1),请按以下步骤操作:
文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Gradle
最后一个复选框(离线工作)

感谢大家,从10分钟缩短到30秒


0
在以下目录中创建一个gradle.properties文件:
  • home//.gradle/ (Linux)
  • /Users//.gradle/ (Mac)
  • C:\Users\.gradle (Windows)
然后将此行添加到文件中:
org.gradle.daemon=true

0

您可以加快Android Studio的性能和构建时间,只需遵循以下步骤:

  • 一次只打开一个项目
  • 在模拟器中运行应用程序后,每次都要清理项目
  • 使用移动设备/外部设备而不是模拟器
  • 使用同一模拟器每次运行应用程序,不要关闭模拟器

1
我已经做了所有这些,而且我的开发行为从 AS 0.9x 到 1.x 没有改变。 - Cheborra
告诉我你的系统配置 - KulArtist
1
实际上,硬件加速的模拟器可能比普通移动设备快得多。此外,它还可以比设备缓慢的USB更快地上传大型APK。但是,在只有4GB RAM的计算机上运行模拟器可能会导致大量交换和性能下降。 - WindRider

0

你是否在公司防火墙后面?您可以尝试以下操作: 1. 转到“设置”>“编译器”(基于Gradle的Android项目) 2. 命令行选项:输入“--stacktrace --debug” 3. 构建您的项目 4. 查看“Gradle控制台”(AS右下角)

这可能会告诉您它卡在哪里了。 注意:Gradle按照build.gradle中定义的顺序访问存储库,请确保您有正确的顺序(首先转到内部,然后回退到其他等)。


好的,你确实指引了我正确的方向,但是还没有找到解决方案...离线操作将构建时间降低到约20秒...但在构建脚本中首先调用mavenLocal()并没有任何区别。请参见上面的更新2。 - Cheborra
@Cheborra,你在打开堆栈跟踪和调试选项后,在Gradle控制台上看到了什么?(你能否发布你的构建Gradle文件中的存储库部分和依赖项部分?) - bond
没有值得一提的东西。 - Cheborra
另一个需要注意的是,在顶层的build.gradle文件中(不是在你的模块中,而是更高一级),你有什么内容。 - bond
只有一个模块,4个构建类型和2种风味... 让我们在聊天中继续。 - Cheborra
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接