Android Studio导入项目非常慢的解决办法

问题

Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势。然而在实际使用时,依然有不少不爽的地方。Android Studio原生支持使用Gradle来构建项目本是个不错的想法,使用动态语言Groovy定义项目构建过程,避免了build.xml文件的繁琐定义。但是Gradle的二进制包体积较大,而且用户可能按照了不同的Gradle版本,构建时可能会出现各种问题。因此又提出了Gradle Wrapper这么个东西,用于解决前面出现的问题。Gradle Wrapper会绑定到一个指定的Gradle版本。当用户导入项目工程时,会自动到远程服务器上下载Gradle包。这样解决了客户端版本不一致的问题,但是也带来了一个新的问题:国内连接到远程服务器下载Gradle包的速度非常慢!所以,每当从Github下载下来一个新项目导入到Android Studio时,都会卡在这个界面:

Android Studio导入项目非常慢的解决办法

你不知道到底是AS死了,还是它确实在后台做些什么……要么就耐着性子等,要么就直接关掉AS,而且必须是强制关闭。这一点做的非常不友善。实际上,之所以卡在这,就是因为后台在服务器下载Gradle包。而这个Gradle包往往有几十兆,在网络环境不太好的情况下,可能要下很久才能完成。显然,我们没有这么多时间在这耗着,需要找个办法来解决了。

解决方法

在网络上搜罗了一番,通常的做法是修改Gradle Wrapper配置文件中的Gradle版本,但是都不太完整。最后在这里看到了完整点的解决方法。精简下主要如下几个步骤:

一、 
先获取本机相关参数,包含如下几个(括号中是我本人机器的参数):
1.
Android Plugin Version:(1.5.0)
2.
Gradle Version:(2.8)
3.
Compile SDK Version:(23)
4.
Build Tools Version:(23.0.2)
5.
GradleHome:(/Applications/Android Studio.app/Contents/gradle/gradle-2.8)

Android Studio导入项目非常慢的解决办法

Android Studio导入项目非常慢的解决办法

二、参数准备好了,即可开始修改目标项目的参数。需要修改的参数位于哪些文件呢?
 

    • xxx-project/.idea/gradle.xml文件:添加或修改<option name="gradleHome" value="前面的GradleHome参数" />
    • xxx-project/gradle/wrapper/gradle-wrapper.properties文件:distributionUrl=https\://services.gradle.org/distributions/gradle-前面的gradleVersion-all.zip
    • xxx-project/build.gradle文件:classpath 'com.android.tools.build:gradle:前面Android Plugin Version' (这个是整个project的配置)
    • xxx-project/build.gradle文件:修改Compile SDK Version和Build Tools Version参数。(这个是单个module的配置,project中每个module都需要修改)


三、参数修改完成,开始正式导入项目。一般情况下,这时候可以很顺利的就导入到Android Studio中来了。如果仍然卡在导入界面,那么只能乖乖的等了……



四、实例:

开始导入新工程

一般导入工程,就是直接导入新的工程。但是这也就造成了配置不对,一直卡在gradle的下载途中等各种问题。获取本机的配置信息,就是为了能够免去各种下载,各种配置等容易出错的步骤,从而一次性(至少不会卡住不动)导入成功。

进入我们用来测试的Android-Skin-Loader工程,用Sublime Text 打开(这个工具也是很好用的编辑器)。似乎这个工程比我们建的ConfigApplication要复杂很多。。工程就有三个。。。似乎不是很好对付啊!!!


Android Studio导入项目非常慢的解决办法

接下来就是开始修改原有工程的配置文件了。开始吧!

修改Gradle Home

Gradle home 的配置信息在这里:

Android-skin-loader/.idea/gradle.xml中:

Android Studio导入项目非常慢的解决办法

将这个设置为Config中的对应的值: D:\Program Files\Android Studio\gradle\gradle-2.2.1

Android Studio导入项目非常慢的解决办法

修改Gradle Version

Gradle Version的信息在这里:

Android-skin-loader/gradle/wrapper/gradle-wrapper.properties

Android Studio导入项目非常慢的解决办法

修改为Config的值:2.2.1

Android Studio导入项目非常慢的解决办法

修改Android Plugin Version

Android Plugin Version 的信息在这里:

Android-skin-loader/build.gradle

Android Studio导入项目非常慢的解决办法

修改为Config的值:1.2.3

Android Studio导入项目非常慢的解决办法


修改Compile SDK Version 和Build Tools Version

Android-skin-loader有三个工程哦,所以这三个工程中都需要修改SDK Version 和Tools Version。 这些信息都在对应工程下的build.gradle中:

Android Studio导入项目非常慢的解决办法

这里都改成Config中获取到的值:23 和23.0.1

Android Studio导入项目非常慢的解决办法

至此,所有的配置基本上都改完了。下面终于可以导入了:

Android Studio导入项目非常慢的解决办法

如果一切顺利,就会build finish啦:

Android Studio导入项目非常慢的解决办法

但是,如果

很不幸:还是卡住了,具体问题具体分析

导入之后,比如会卡在某个地方:

Android Studio导入项目非常慢的解决办法

Android Studio就这点不好,不知道到底后面在做什么。。Cancel也不起作用。(不知道这个cancel用来干嘛的,假动作?)

我个人的经验告诉我:一般都是出现在项目中的build.gradle中。还是拿Android-skin-loader来说:打开sample下的build.gradle文件,我们会看到一堆我们不熟悉的代码(和ConfigApplication的对比):

Android Studio导入项目非常慢的解决办法


可以看到,左边的sample的gradle多了一堆。。。粗略看一下这些代码,就知道和项目编译是没有什么关系的,就可以删掉这些代码了。

对于其他工程下的build.gradle文件,也同样的可以删掉一些多余的配置。这样能够简化gradle的配置,能够最小程度的满足gradle编译运行的条件。

以上就是我的经验总结了。希望能帮助到大家。