你的位置:首页 > 操作系统

[操作系统]Gradle 多渠道打包的使用和错误分析


刚接触到android的开发,对什么都陌生的,本文是自己在项目中使用的技术要点总结,大咖遇到可直接飘过。。。。。

1.Gradle 打包(不废话了直接来脚本),将下列脚本放到build.gradle文件android{}内;

 1   defaultConfig{ 2     //applicationId "" //应用包名 3     minSdkVersion 9    //sdk最小支持版本 4     targetSdkVersion 17  //sdk目标版本 5     versionCode 1 6     versionName "1.0" 7  8     //dex突破65535限制 9     multiDexEnabled true10 11     // AndroidManifest.12     //manifestPlaceholders = [UMENG_CHANNEL_VALUE:""]13   }14 15   //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。16   lintOptions{17     abortOnError false18   }19 20   //签名21   signingConfigs{22     myConfig{23       storeFile file("123456") //签名文件路径24       storePassword "123456"25       keyAlias "123456"26       keyPassword "123456"27     }28   }29 30 31   buildTypes {32     release {33       // 不显示Log34       buildConfigField "boolean", "LOG_DEBUG", "false"35       //混淆36       minifyEnabled true37       //Zipalign优化38       zipAlignEnabled true39       // 移除无用的resource文件40       shrinkResources true41       //加载默认混淆配置文件 progudard-android.txt在sdk目录里面,不用管,proguard.cfg是我们自己配<span></span>的混淆文件42       proguardFiles getDefaultProguardFile('proguard-android.txt')43       proguardFile 'proguard.cfg'44       //签名45       signingConfig signingConfigs.myConfig46     }47   }48 49   //flavorDimensions "abi"50 51   //渠道Flavors,我这里写了一些常用的52   productFlavors {53     _360 {54     }55     xiaomi {56     }57   }58 59 60   productFlavors.all { flavor ->61     flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]62   }63 64 65   applicationVariants.all { variant ->66     variant.outputs.each { output ->67       def outputFile = output.outputFile68       if (outputFile != null && outputFile.name.endsWith('.apk')) {69         70         // 输出apk名称为appName_v1.0.apk71         def fileName = "${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk"72         output.outputFile = new File(outputFile.parent, fileName)73       }74     }75   }

然后 使用 gradle clean assembleRelease -d(输出debug信息) 一般就会成功打出360和小米的渠道包。

Notes:

1.混淆文件问题

proguard.ParseException: Unknown option '锘?--dump.txt

先查看混淆配置文件的编码和然后最将文件修改为proguard.cfg,并打开查看文件中命令行被识别为止;

2.引用第三方jar问题

Execution failed for task java.io.IOException: Can't write ‘ ’ Can't read

查看引用第三方jar包是否被多次引用(删除被多次引用jar),引用依赖maven的写法

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
}

并且Can't read后面跟着的jar在libs中删除。

(使用Gradle2.2.1 eclipse转android studio项目)