为什么80%的码农都做不了架构师?>>>
如果你有很好的网络环境
好的网络环境,这里不是指:我家网速带宽100M,电信的光纤接入。
而是:能。因为如果本机的gradle和将要导入的工程版本不匹配,Studio就回去下载对应版本的gradle,下载完之后才能进行编译。
当然,下载速度也不能太慢。太慢的话,你就等着下载完吧。。。
如果你没有好的网络环境,或者你现在处于没有网络状态
那么这篇文章也许能够指导你如何正确的导入别人的工程。
这里就用一个代码作为示例:github上的一个安卓换肤的示例:
https://github.com/fengjundev/Android-Skin-Loader.git
首先,先把这个git克隆到本地。(TortoiseGit真是个好工具!)
然后,打开Android studio,得到一个能够正确运行的工程。这个工程,可以是你之前能够运行起来的工程,也可以是你新建的一个studio工程。为什么要新建一个工程?为的就是得到能够运行起来的gradle配置。
我们需要的是以下这几个内容:
1.Android Plugin Version
2.Gradle Version
3.Compile SDK Version
4.Build Tools Version
5. GradleHome
如果有现有的工程,直接跳到【获取我们所需的配置内容】处接着阅读。如果没有,就接着往下阅读。
这里我就创建一个新的工程:ConfigApplication:目的只有一个:获取以上提到的内容。
选择Compile SDK Version的时候,尽量往高了选。用最新的总是比较好的。
新建完了,切换到Project浏览模式,以下四个框就是要重点关注的对象。也就是从这里获取我们所需要的配置信息:这也是我们导入新的工程之前,需要修改的几个文件:
这些内容也都可以通过其他方式更加直接的获取到:
获取我们所需的配置内容
另一种方式就是:右击项目,打开module setting:
这里有四个:Project标签:
App标签也有两个:
还有一个:通过IDE的File 打开Settings,搜索gradle:
对应的5个配置的值是:
1.Android Plugin Version 1.2.3
2.Gradle Version 2.2.1
3.Compile SDK Version 23
4.Build Tools Version 23.0.1
5.GradleHome D:\Program Files\Android Studio\gradle\gradle-2.2.1
至此,我们所需的5个配置信息都获取到了。接下来才是导入新工程的开始:
开始导入新工程
一般导入工程,就是直接导入新的工程。但是这也就造成了配置不对,一直卡在gradle的下载途中等各种问题。获取本机的配置信息,就是为了能够免去各种下载,各种配置等容易出错的步骤,从而一次性(至少不会卡住不动)导入成功。
进入我们用来测试的Android-Skin-Loader工程,用Sublime Text 打开(这个工具也是很好用的编辑器)。似乎这个工程比我们建的ConfigApplication要复杂很多。。工程就有三个。。。似乎不是很好对付啊!!!
接下来就是开始修改原有工程的配置文件了。开始吧!
修改Gradle Home
Gradle home 的配置信息在这里:
Android-skin-loader/.idea/gradle.xml中:
将这个设置为Config中的对应的值: D:\Program Files\Android Studio\gradle\gradle-2.2.1
修改Gradle Version
Gradle Version的信息在这里:
Android-skin-loader/gradle/wrapper/gradle-wrapper.properties
修改为Config的值:2.2.1
修改Android Plugin Version
Android Plugin Version 的信息在这里:
Android-skin-loader/build.gradle
修改为Config的值:1.2.3
修改Compile SDK Version 和Build Tools Version
Android-skin-loader有三个工程哦,所以这三个工程中都需要修改SDK Version 和Tools Version。 这些信息都在对应工程下的build.gradle中:
这里都改成Config中获取到的值:23 和23.0.1
至此,所有的配置基本上都改完了。下面终于可以导入了:
如果一切顺利,就会build finish啦:
但是,如果
很不幸:还是卡住了,具体问题具体分析
导入之后,比如会卡在某个地方:
Android Studio就这点不好,不知道到底后面在做什么。。Cancel也不起作用。(不知道这个cancel用来干嘛的,假动作?)
我个人的经验告诉我:一般都是出现在项目中的build.gradle中。还是拿Android-skin-loader来说:打开sample下的build.gradle文件,我们会看到一堆我们不熟悉的代码(和ConfigApplication的对比):
可以看到,左边的sample的gradle多了一堆。。。粗略看一下这些代码,就知道和项目编译是没有什么关系的,就可以删掉这些代码了。
对于其他工程下的build.gradle文件,也同样的可以删掉一些多余的配置。这样能够简化gradle的配置,能够最小程度的满足gradle编译运行的条件。
以上就是我的经验总结了。希望能帮助到大家。