问题

Android Studio目前已经更新到2.0 beta 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. 先获取本机相关参数,包含如下几个(括号中是我本人机器的参数):
    • AndroidPluginVersion:(2.0.0)

    • GradleVersion:(2.10)

    • CompileSDKVersion:(23)

    • BuildToolsVersion:(23.0.1)

    • GradleHome:(/Applications/Android Studio.app/Contents/gradle/gradle-2.10)

获取方法很简单,在Android Studio里面新建一个工程,单击工程名右键选择“Open Module Settings”弹出对话框中可以看到:






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

    • xxx-project/.idea/gradle.xml文件:添加或修改<optionname="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文件:修改CompileSDKVersionBuildToolsVersion参数。(这个是单个module的配置,project中每个module都需要修改)

3. 参数修改完成,开始正式导入项目。一般情况下,这时候可以很顺利的就导入到Android Studio中来了。如果仍然卡在导入界面,那么只能乖乖的等了......等的时候看看博客和开发文档也是蛮好的嘛。

参考

  • http://ju.outofmemory.cn/entry/229755
  • https://docs.gradle.org/current/userguide/gradle_wrapper.html



------------------

PS

期间遇到的小问题:

1.在build.gradle文件中修改 compilesdk 和minsdk的时候,修改过了,点击编译,却恢复至修改之前的情况:


解决办法:删除主moudle/build/outputs









更多相关文章

  1. Android(安卓)Studio SVN/Git之忽略文件
  2. 6.1、Android(安卓)Studio配置构建
  3. Andriod内嵌HTML5项目构建以及整包更新配置
  4. android 3D 游戏实现之人物行走(MD2)
  5. eclipse中为android工程第三方jar包关联源代码的方法
  6. eclipse中android结构整理
  7. Android(安卓)NDK 简介、工具安装、环境配置
  8. Android(安卓)Studio 将Library打包成jar或aar包
  9. Android中Xposed框架篇—修改系统位置信息实现自身隐藏功能

随机推荐

  1. 在引导程序弹出窗口中使用交互式元素
  2. jQuery去掉导航分割线的最后一条竖线
  3. jQuery $ajax 传中文数据到action乱码解
  4. 使用php变量用ajax更新jqplot
  5. JS检查浏览器是否支持CSS Snap Points
  6. 使用jquery在ajax xmlhttprequest上重用j
  7. 在Ubuntu 14.04上通过npm安装jsdom的问题
  8. jQuery 选择器 与 事件
  9. xpages多附件接收
  10. 关于JQuery jqGrid colModel 遇到的一个