坚持Gradle Build Running

问题描述 投票:27回答:6

在尝试在Android Studio 2.1(On Ubuntu 16.04)上构建我的应用程序时,它会卡在下面的注释中:

Executing tasks: [:app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources]

任何人都可以帮帮我。

android android-studio gradle
6个回答
67
投票

实际上并没有卡住。这需要更多的时间来构建。我有几乎3个可以解决问题的解决方案。

方案1:

遵循这些步骤将使其快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

方案2:

如果Android Studio具有代理服务器设置但无法访问服务器,那么构建需要很长时间,可能是它试图到达代理服务器并等待超时。当我删除代理服务器设置其工作正常。

在Android Studio中转到File -> Settings -> Build, Execution, Deployment -> Buil Tools -> Gradle

检查'Offline work'下的'Global Gradle settings'

它将减少90%的gradle构建时间。


解决方案-3

如果您使用的是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的列表,请参阅:

https://developers.google.com/android/guides/setup

资源链接:

  1. Android Studio gradle takes too long to build
  2. Discussion about stuck in gradle build

解决方法4:

Arun George评论了以下解决方案。

问题是由于缺少某些32位库。不得不做sudo apt-get install lib32z1。添加到gradle.properties有助于缩短构建时间。


2
投票

对于我的情况,我不得不安装gcc-multilib

$ sudo apt-get install gcc-multilib

检查右下方的Gradle控制台,因为它的输出比事件日志多。


2
投票

改变buildToolsVersion是我的解决方案。


0
投票

添加更多@ SkyWalker的答案:

另请检查您是否拥有最新版本的gradle。将gradle plug-in更新到最新版本可能会有所帮助。

注意:我有类似的设置(Ubuntu 16.04上的Android Studio 2.1),我遇到了类似的问题。将gradle更新到最新版本为我解决了问题。


0
投票

问题是该项目未与gradle文件同步。我做的决议是去File > Sync Project with Gradle Files,它能够同步。


0
投票

您可能在代理之后,最近可能更改了密码或更改了某些内容。去

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

在gradle.properties文件中,删除/更改代理设置。它们与您的android studio代理设置不同。

有同样的问题,gradle过去需要一个小时才能建成。从gragle.properties文件中删除代理设置后,它现在需要几个设置。

© www.soinside.com 2019 - 2024. All rights reserved.