Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. 项目根目录下 build.gradle 配置
- buildscript {
- repositories {
- jcenter()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:1.3.0'
- classpath 'com.tencent.bugly:symtabfileuploader:latest.release'
- }
- //当升级sdk、build tool、target sdk等,几个module都要更改,先在project的根目录下的build.gradle定义ext全局变量,然后每次修改project级别的build.gradle即可实现全局统一配置。
- ext {
- compileSdkVersion = 21
- buildToolsVersion = "23.0.2"
- minSdkVersion = 11
- targetSdkVersion = 21
- versionCode = 5610000
- versionName = "5.6.1"
- }
- }
- allprojects {
- repositories {
- jcenter()
- }
- }
- task clean(type: Delete) {
- delete rootProject.buildDir
- }
- 2. 主module build.gradle 配置
- apply plugin: 'com.android.application'
- def releaseTime() {
- return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
- }
- android {
- compileSdkVersion rootProject.ext.compileSdkVersion
- buildToolsVersion rootProject.ext.buildToolsVersion
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_7
- targetCompatibility JavaVersion.VERSION_1_7
- }
- signingConfigs {
- padSigning {
- storeFile file('../build_tools/keystore/Pad/sohu_video_pad_keystore')
- storePassword "sohuvideopad"
- keyAlias "sohu_video_pad_keystore"
- keyPassword "sohuvideopad"
- }
- }
- defaultConfig {
- applicationId "com.sohu.tv"
- minSdkVersion rootProject.ext.minSdkVersion
- targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode = rootProject.ext.versionCode
- versionName = rootProject.ext.versionName
- multiDexEnabled true
- signingConfig signingConfigs.padSigning
- ndk {
- // 设置支持的SO库架构
- abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
- }
- }
- buildTypes {
- release {
- buildConfigField("boolean","SHOW_LOG","false")
- signingConfig signingConfigs.padSigning
- shrinkResources true
- minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), '../build_tools/jenkins/proguard.cfg'
- zipAlignEnabled true
- debuggable false
- }
- debug {
- buildConfigField("boolean","SHOW_LOG","true")
- signingConfig signingConfigs.padSigning
- debuggable true
- minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), '../build_tools/jenkins/proguard.cfg'
- }
- }
- dexOptions {
- incremental true
- }
- // 移除lint检查的error
- lintOptions {
- checkReleaseBuilds false
- abortOnError false
- }
- dexOptions {
- incremental true
- }
- packagingOptions {
- exclude 'LICENSE.txt'
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/dependencies'
- exclude 'META-INF/DEPENDENCIES.txt'
- exclude 'META-INF/dependencies.txt'
- exclude 'META-INF/LGPL2.1'
- exclude 'META-INF/LICENSE'
- exclude 'META-INF/license'
- exclude 'META-INF/LICENSE.txt'
- exclude 'META-INF/license.txt'
- exclude 'META-INF/NOTICE'
- exclude 'META-INF/notice'
- exclude 'META-INF/NOTICE.txt'
- exclude 'META-INF/notice.txt'
- exclude 'META-INF/README.txt'
- exclude 'META-INF/services/javax.annotation.processing.Processor'
- exclude '!META-INF/MANIFEST.MF'
- exclude 'META-INF/MANIFEST.MF'
- }
- // 只是放置一个armabi版本
- splits {
- abi {
- enable true
- reset()
- include 'armeabi'
- universalApk false
- }
- }
- }
- repositories {
- flatDir {
- dirs 'libs'
- }
- }
- dependencies {
- compile fileTree(dir: 'libs', include: '*.jar')
- compile project(':Commonlibrary')
- compile 'com.jakewharton:butterknife:7.0.1'
- }
- 3. library module build.gradle 配置 主要都同上,特殊如下:
- apply plugin: 'com.android.library'
- android{
- buildTypes {
- release {
- minifyEnabled true // 这个一定要为true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- // 项目根目录执行 ./gradlew makeReleaseJar , 生成aar文件在build/outputs/aar
- task makeReleaseJar(type: Jar, dependsOn: 'assembleRelease') {
- delete 'build/libs/VolleyNetLibrary.jar' // VolleyNetLibrary 为library module 名字
- from fileTree(dir: 'build/intermediates/classes/release') //指定具体classes位置
- into('build/libs/') // 生成jar放到此module文件目录
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement