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'
}
posted @ 2017-10-23 09:14  jxiaow  阅读(82)  评论(0编辑  收藏  举报