之前做项目的时候使用Eclipse,配置第三方类库让人欲仙欲死,互相依赖的关系让人头大,现在跟风使用AS(Android Studio),脱胎于INTELJ的,但是整体体验确实不错,速度比较快,效率也要高一些。希望能够更快完善。
进入正题。Android Studio使用的gradle来进行编译的。Gradle是什么,我复制下官方的说法:
Gradle is build automation evolved. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.
一个工程内包含多个项目的构建,gradle下的文件访问结构是以":"作为标记符的。gradle下的配置要点主要是3点:
A.主项目下建立setting.gradle,包括所有引用到的类库:
include ':subProject:twoway',':subProject:SlidingMenu:library'
B.主项目里的build添加依赖库
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':subProject:twoway')
compile project(':subProject:SlidingMenu:library')
}
C.其他引用库项目文件下自行配置build.gradle来声明自己的类库依赖关系
apply plugin: 'android-library'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:18.0.+'
}
android {
compileSdkVersion 16
buildToolsVersion "18.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
D.我使用的时候,遇到找不到class的报错,重启studio解决了,估计是要重新载入IDE才知道。
如上步骤就可以轻松解决依赖库的配置,非常适合程序员,脱离原来的IDE配置,虽然studio点击项目右键还是可以找到IDE的依赖库设置,但没什么用处。
另外就是遇到一个错误,是因为gradle默认编译的项目结构多了一个main文件夹,造成找不到manifest.xml造成的。错误截图如下:
需要在类库里指定需要的资源路径即可
sourceSets
参考文档:
1.官方的多项目构建 http://www.gradle.org/docs/current/userguide/multi_project_builds.html
2.http://tools.android.com/tech-docs/new-build-system/user-guide
3.https://gist.github.com/khernyo/4226923