Android Studio中build.gradle详解

来源:互联网 发布:php 获取系统信息 编辑:程序博客网 时间:2024/05/18 12:04

之前一直都是在用eclipse,很多毛病都没改过来,所有今天特意总结一下Studio下的build.gradle,不对之处敬请发表偷笑偷笑偷笑偷笑偷笑偷笑偷笑偷笑

apply plugin: 'com.android.application'   //这表示此module是一个可运行的应用程序,可以直接run的

//apply plugin: 'com.android.library'//这表示此module是一个安卓依赖库的工程,不可直接run
//apply plugin: 'java' //这表示此module是一个java项目,在此module中只能使用java的api
android {
    compileSdkVersion 24  //开发时采用的sdk版本
    buildToolsVersion "24.0.3"  //编译时采用的编译工具版本


    defaultConfig {
        applicationId "com.****.app"  //应用包名 应用的id,这里决定应用的唯一标识。
        minSdkVersion 14                  //决定此应用最低兼容的安卓系统版本
        targetSdkVersion 24              //决定此应用最高可兼容的安卓系统版本
        versionCode 1                       //应用的版本号
        versionName "1.0.0"              //应用的版本名

     

        //如果没有配置 generatedDensities 则会生成所有 屏幕密度 对应的 png 图片。

        //如果指定了 generatedDensities则只生成 指定的图片。

        generatedDensities = []     
        // 这是为您处理2.0 + Gradle插件
        aaptOptions {
            additionalParameters "--no-version-vectors"

        }

        //Android 5.0以下出现 java.lang.NoClassDefFoundError:

        multiDexEnabled true         

    }
  //因为多个 jar 包里包含了同样的文件(NOTICE.txt),导致打包时因为担心相互覆盖问题而提示出错。 
//在 app 下的 build.gradle 中的 android 部分增加一段配置

    packagingOptions {              
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    //Out of memory 问题 对于有很多依赖的项目,编译可能中断
    //可以解决DEX 64K的问题,应该是保留使用。当你尝试使用它以前,
    //请先尝试删除不需要的依赖并且使用ProGuard混淆,如果你必须要使用这个方案。请确保在旧设备上做了测试。

    dexOptions {
        javaMaxHeapSize "4g"
    }
    //编译JDK 版本
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }


    buildTypes { //构建的类型方式
        release {  // release方式,一般这种是定义为正式包渠道
            minifyEnabled false  //编译时是否混淆的开关

            //混淆文件的路径,注意这里用的是proguardFiles,是后面带s的,

            //所以可以添加多个混淆文件路径,每个之间用“,“号隔开

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
           //如果.so文件跟Eclipse一样放在了libs文件夹下就需要加上这一行代码
            jniLibs.srcDir(['libs'])
        }
    }
   //这个是解决lint报错的代码
    lintOptions {
      abortOnError false
       }
    }


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')//编译的文件树
    testCompile 'junit:junit:4.12'  //测试项目需要引用的
    //正常项目需要引用的
    //引入第三方库

    compile project(':adlibrary')
    //导入的jar包
    compile files('libs/locSDK_6.13.jar')
}

0 0
原创粉丝点击