Android中Gradle使用详情
Gradle使用详解
转载请注明出处:http://blog.csdn.net/xiaowu_zhu/article/details/78315353
Android studio通过Gradle脚本进行打包运行程序。
Gradle 所有文件结构
Android工程目录下有一个build.gradle, 运行的module里也有一个build.gradle。
settings.gradle
settings.gradle表示当前运行的程序是app,如果还需要在工程中添加其他运行程序,就需要在settings.gradle中进行配置
build.gradle
build.gradle 中设置了Gradle的版本、依赖的仓库
app/build.gradle
apply plugin: 'com.android.application' //应用Android应用插件
//apply plugin: 'com.android.library' // 应用Android库插件
android {
compileSdkVersion 25 // 编译SDK的版本
buildToolsVersion "25.0.2" //构建工具的版本
defaultConfig {
applicationId "com.xwj.activitytest" //应用的唯一标识
minSdkVersion 15 //最低兼容版本
targetSdkVersion 25 //目标兼容版本
versionCode 1 //版本号,数字版本号
versionName "1.0" //字符串版本号
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes { //构建类型
release {
minifyEnabled false //是否混淆代码,false不混淆
//混淆代码配置文件
proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies { //指明项目中依赖的第三方库函数
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
Android Gradle 异常处理
Android studiograde乱码
在当前build.grade中添加:
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
手动更新Gradle
首先open android studio项目 找到项目目录gradle\wrapper\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.9-all.zip
- 最重要的就是最下面一句,android studio会联网下载符合当前版本的gradle插件,而这个网址虽然可以访问但速度实在太慢,所以每次更新需要花费很长时间或直接超时
下面是我尝试后解决问题的办法就是先通过下载工具下载http://services.gradle.org/distributions/gradle-1.9-all.zip 这个版本的插件,用下载工具会比较快下载后 直接把zip文件拷贝到 C:\Users\Administrator.gradle\wrapper\dists\gradle-1.9-all\3jdgemv0iv8uqohg3kcp2o88r1 目录下
重新关闭android studio 重新打开 或 直接单击android studio工具栏 Sync Project Gradle Files
android studio就是自动更新插件了,不用下载了
android studio 使用lambda表达式
新的 Java 8 语言功能,还需使用新的 Jack 工具链。新的 Android 工具链将 Java 源语言编译成 Android 可读取的 Dalvik 可执行文件字节码,且有其自己的 .jack 库格式,在一个工具中提供了大多数工具链功能:重新打包、压缩、模糊化以及 Dalvik 可执行文件分包。
以下是构建 Android Dalvik 可执行文件可用的两种工具链的对比:
旧版 javac 工具链:
javac (.java –> .class) –> dx (.class –> .dex)
新版 Jack 工具链:
Jack (.java –> .jack –> .dex)
defaultConfig {
...
jackOptions{
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
避免module和程序的依赖冲突
将
complie project(': my_library')
改为:
complie (project(': my_library')){
transitive=false;
}
引入aar的办法
repositories{
....
flatDir{
dirs 'libs' //就是你放aar的目录地址
}
}
dependencies {
....//你的其他依赖
compile name:'SMSSDK-<version>',ext:'aar'
}