使用Gradle构建android应用
介绍:
由于Android Studio使用的构建工具是Gradle,所以如果Eclipse和Android Studio想互相构建彼此的应用,必须使用Gradle。
Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
注意:
1、由于android使用的Gradle版本是1.12,所以下载1.12版本即可,使用高版本则会报错。
2、在Eclipse导出gradle.build时,如果有某些依赖项报错:Make sure all dependencies are opened,则要确保该依赖项的位置是与项目位于同一workspace的!
设置:
1、下载完Gradle后,需要设置系统环境变量,变量名:GRADLE_HOME 变量值:你的路径\gradle-1.12,然后在系统变量PATH中添加%GRADLE_HOME%\bin;
2、同时要注意Android环境变量是否设置,变量名:ANDROID_HOME 变量值:AndroidSdk的路径(例如E:\Program Files (x86)\Android\android-studio\sdk),然后在系统变量PATH中添加%ANDROID_HOME%\tools;
示例:
Android示例在Android-18之后大多都是用gradle进行构建的,所以想看示例APK用eclipse构建就比较麻烦。假设我现在想直接构建sdk\samples\android-19\ui\CustomNotifications的APK查看示例。
目录结构如图所示
打开cmd--》cd 示例目录 --》运行gradle build
当结束看到BUILD SUCCESS或者在CustomNotificationsSample\build\outputs\apk文件夹中看到
那么构建就成功了。
我们再试试另一个示例\sdk\samples\android-20\ui\TextSwitcher,步骤同理
gradle那么神奇?自动就会构建应用了?
其实在构建的过程中,使用到了build.gradle这个文件,里面的内容就是构建脚本
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
}
}
apply plugin:'android'
dependencies {
// Add the support lib that is appropriate for SDK 4
compile "com.android.support:support-v4:19.1.+"
}
// The sample build uses multiple directories to
// keep boilerplate and common code separate from
// the main sample code.
List<String> dirs =[
'main',// main sample code; look here for the interesting stuff.
'common',// components that are reused by multiple samples
'template']// boilerplate code that is generated by the sample template process
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
sourceSets {
main {
dirs.each { dir ->
java.srcDirs "src/${dir}/java"
res.srcDirs "src/${dir}/res"
}
}
androidTest.setRoot('tests')
androidTest.java.srcDirs =['tests/src']
}
}
一般情况下,我们都使用自动生成的build.gradle
当然你也可以自己手写,不过前提是要去官网学习相关内容。
当Eclipse ADT升级到22.0或更高的版本后,我们就能使用导出android的build.gradle功能了。
跟着步骤走即可。在Android Studio中,导入这个build.gradle即可将Eclipse的项目导入Android Studio。
常见问题:
1、Could not create plugin of type 'AppPlugin'
这个大概就是版本不匹配的问题
打开,记得把build.gradle的只读属性去掉~~
把文件里面的版本换成0.10.+就好啦~
我不怕千万人阻挡,只怕自己投降。