最近看到网上很多人在抱怨,Android Studio很难导入github上下载下来的一些项目,主要包括:
1、导入就在下载Gradle
2、根本导不进
下面我分2部分来讲解正确的导入姿势:
1、导入完整的Github Project
我们在github上找一个项目
工程目录如上,里面的东西其实分为2部分,工程相关和项目相关
工程相关用于配置整个项目的编译环境和依赖,项目相关就是你的代码和配置文件啦
我们先来看工程相关,他包含这样几个文件夹:
由于现在Gradle还不是太成熟,所以版本更新会比较快,如果当初项目作者使用的是其他版本的Gradle,而你没有,AS就好默认去下载最匹配的Gradle,可偏偏在国内,这个下载奇慢无比,而且Gradle的文件也挺大有50+MB,所以,我们需要修改下配置先:
打开gradle文件夹warpper文件夹,打开gradle-wrapper.properties
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
可以看见最后一行,作者使用的是gradle-1.12-all.zip,而我们,我们打开这样一个目录C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55
我们使用的是gradle-2.1-all.zip,所以AS就煞笔的再去下一个gradle-1.12-all.zip了,OK我们修改下配置改为:
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip
然后选择
open exiting,选择我们的Build.gradle文件,就可以打开项目了。
但是——————————————————————————————————————————————
这个办法在最新的2.1上好像————————————————————————————————————不行了
具体原因我也没有找到,但可以想到Android Studio和gradle 2个都是beat中的玩意,出点问题也不奇怪,但愿以后正式版上能ok就好
下面我们使用另一种方法,移花接木:
我们先来看看我们自己创建的项目编译好后是什么样子:
多了几个gradle的文件哈,OK,我们把工程相关的gradle文件夹copy过来,替换掉要导入工程的gradle文件夹
copy需要这几个文件夹:
OK,下面再重新导入Exiting Project,选择Build.gradle文件,即可导入Project。
2、导入一个module
如果我们新建了一个工程,需要导入其他工程的一个module怎么弄呢,如同我们上面的那个项目,需要导入他的library
这个其实就很简单了,我们前面搞那么多,都是因为工程无法找到正确的编译文件,但是module就不一样了,他只是用一个Build.gradle文件来控制它这个module的编译规则,因此,我们只要导入就可以了,工程的编译配置还是我们自己工程的配置,只是导入的时候需要注意下,这里我们需要选择module的目录,而不是再选择Build.gradle文件了。
ok,选择导入,就可以完成module的添加了。
归根到底,gradle的编译方式与Android的Makefile还是有点类似的,这样的方式,项目越大,优势越明显,但在我们平时的小app开发上,确实显得有点臃肿,编译时间实在太长了!!!但愿正式版能有所改善,相信Google能做到。
对于无法导入项目这件事,说到底还是对Gradle语法和编译环境的不熟悉造成的,所以说,学东西,搞清楚原理很重要啊,特别是像这种刚开始普及的东西,哪来那么多现成的东西可以让你借鉴,只能靠自己,Read The F**king Source Code。
以上。