为什么Android Studio重建项目的速度如此之慢,即使源代码没有变化?

时间:2014-11-12 15:02:06

标签: android android-studio android-gradle

当我在源代码中进行一些更改时,Android Studio(实际上是 gradle )需要重建项目。这很明显。

为什么第二次构建所花费的时间几乎与第一次构建时相同,即使我没有在项目中进行任何更改? 当我查看GradleConsole时,它等待" assembleDubug"任务。我认为 gradle 应该意识到没有变化,不应该浪费太多时间。

4 个答案:

答案 0 :(得分:19)

最后,我找到了解决方案:启用离线工作以获取gradle。

enter image description here

或使用 CLI

./gradlew --offline assembleDebugOrWhatever

答案 1 :(得分:5)

gradle控制台是否说出来 :app:assemeble UP-TO-DATE ?

如果您查看运行配置,您可能会注意到最底部Before Launch: Gradle-aware Make

这只是告诉它在运行之前重新编译(如有必要),但该检测被委托给Gradle。 Gradle只有在检测到需要时才会重新编译,但assemble任务仍必须尝试运行以检测UP-TO-DATEness。所以它说它正在运行它,但它实际上并没有做任何事情。当我连续两次运行它时,第一次需要一段时间才能完成所有操作,但第二次它只是很快地运行任务列表(带有一堆UP-TO-DATE)并部署到手机/仿真器。

答案 2 :(得分:0)

这本身不是问题。它与Android Studio无关,因为Gradle只是一个帮助您构建项目的Android插件。您需要完全了解gradle在运行应用时Android Studio使用它的原因。看看gradle上这个漂亮的SO question以及android developer website上的文章。最后,根据我的个人经验,在处理Android Studio和Eclipse for Android开发时,您需要有点耐心。希望这在某种程度上有所帮助。

答案 3 :(得分:0)

为了避免每次重建,我要进入我的模块项目设置 - >依赖关系以及向上或向下移动我的某个库项目 - >申请 - >好的 - >重新生成R.java。 您也可以尝试取消选中" 使用外部版本"在编译器设置中:

文件 - >设置(Ctrl + Alt + S) - >编译器 - >取消选中"使用外部版本"