gradle android友盟多渠道混淆编译打包

来源:互联网 发布:java中for循环 编辑:程序博客网 时间:2024/06/05 15:13

build.gradle的编写:

apply plugin: 'android'android {    compileSdkVersion 16    buildToolsVersion "19.0.3"    defaultConfig {        minSdkVersion 10        targetSdkVersion 17    }    lintOptions {        abortOnError false    }    //签名    signingConfigs {        release{            storeFile file("xxxx")            storePassword "xxxx!"            keyAlias "xxxx"            keyPassword "xxxx!"        }    }    //多渠道    productFlavors {        wandoujia{        }    }    buildTypes {        //混淆编译和签名信息设置        release {            signingConfig signingConfigs.release            runProguard true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'        }    }}tasks.withType(Compile) {    options.encoding = "UTF-8"}//第三方的lib和project的引用dependencies {    compile project(':viewPagerIndicator')    compile project(':social_sdk_library_project')    compile project(':slidingMenu')    compile 'com.google.code.gson:gson:2.2.4'    compile files('libs/android-async-http-1.4.4.jar')    compile files('libs/umeng_sdk.jar')    compile files('libs/universal-image-loader-1.8.6-with-sources.jar')}//替换AndroidManifest.xml的UMENG_CHANNEL_VALUE字符串为渠道名称android.applicationVariants.all{ variant ->    println "${variant.productFlavors[0].name}"    variant.processManifest.doLast{        copy{            from("${buildDir}/manifests"){                include "${variant.dirName}/AndroidManifest.xml"            }            into("${buildDir}/manifests/$variant.name")            filter{                String line -> line.replaceAll("UMENG_CHANNEL_VALUE", "${variant.productFlavors[0].name}")            }            variant.processResources.manifestFile = file("${buildDir}/manifests/${variant.name}/${variant.dirName}/AndroidManifest.xml")        }    }}

出错问题集锦:
1.Gradle version 1.10 is required. Current version is 1.11
A.找到:<Project>/gradle/wrapper/gradle-wrapper.properties然后修改:distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip中的gradle-1.10-all.zip为gradle-1.11-all.zip.
B.再修改build.gradle下的buildToolsVersion "19.0.0"为最新的buildToolsVersion "19.0.3"(有第三方的projecd lib包也要进行修改)
C.修改主工程的build.gradle中的
dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }为
dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
具体版本的值参考:
http://stackoverflow.com/questions/22252956/android-studio-gradle-issue-upgrading-to-version-0-5-0-gradle-migrating-from-0
rebuild工程即可。
2.lint错误终止
在android中加入:
lintOptions {
        abortOnError false
    }
有第三方project lib的也需要加入。


打包编译:
$gradle clean
$gradle assembleRelease
参考文档:
http://stackoverflow.com/questions/19460349/gradle-version-1-8-is-required-current-version-is-1-6
https://github.com/umeng/umeng-muti-channel-build-tool/tree/master/Gradle

0 0
原创粉丝点击