Gradle 多渠道打包的使用和错误分析(转)

简介: 刚接触到android的开发,对什么都陌生的,本文是自己在项目中使用的技术要点总结,大咖遇到可直接飘过。。。。。 1.Gradle 打包(不废话了直接来脚本),将下列脚本放到build.gradle文件android{}内; 1 defaultConfig{ 2 ...

 

刚接触到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 true 10 11 // AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE} 12 //manifestPlaceholders = [UMENG_CHANNEL_VALUE:""] 13  } 14 15 //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。 16  lintOptions{ 17 abortOnError false 18  } 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 // 不显示Log 34 buildConfigField "boolean", "LOG_DEBUG", "false" 35 //混淆 36 minifyEnabled true 37 //Zipalign优化 38 zipAlignEnabled true 39 // 移除无用的resource文件 40 shrinkResources true 41 //加载默认混淆配置文件 progudard-android.txt在sdk目录里面,不用管,proguard.cfg是我们自己配<span></span>的混淆文件 42 proguardFiles getDefaultProguardFile('proguard-android.txt') 43 proguardFile 'proguard.cfg' 44 //签名 45  signingConfig signingConfigs.myConfig 46  } 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.outputFile 68 if (outputFile != null && outputFile.name.endsWith('.apk')) { 69 70 // 输出apk名称为appName_v1.0.apk 71 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项目)

http://www.cnblogs.com/aland/p/4482825.html

 

相关文章
|
4月前
|
Android开发 iOS开发
build.gradle 多渠道打包和用正式签名运行调试
build.gradle 多渠道打包和用正式签名运行调试
|
5月前
|
Android开发
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
252 0
|
6月前
|
Android开发
gradle 变体打包 productFlavors
gradle 变体打包 productFlavors
130 5
|
12月前
|
jenkins Java Shell
Jenkins 打包shell出现gradle命令不存在,jvm内存溢出
Jenkins 打包shell出现gradle命令不存在,jvm内存溢出
97 4
|
开发工具
Gradle使用命令行打包apk
Gradle使用命令行打包apk
469 0
Gradle使用命令行打包apk
|
Java Android开发
Android Gradle 多渠道打包
Android Gradle 多渠道打包
642 2
Android Gradle 多渠道打包
|
Web App开发 Java 开发工具
友盟在AS中利用Gradle进行多渠道打包和APK签名发布( 五 )
这篇是直接给大家上代码,希望让大家了解到友盟
657 0
|
Web App开发 Java 开发工具
|
Java
友盟在AS中利用Gradle进行多渠道打包和APK签名发布( 三 )
接上两篇的知识,这篇也是分享一下配置信息
289 0
|
Web App开发 Android开发 数据安全/隐私保护
友盟在AS中利用Gradle进行多渠道打包和APK签名发布( 二 )
自从Google放弃对Eclipse的维护,并力推Android studio时,其版本的更新迭代速度也是非常快的,而且开发的工程中经常需要用到gradle的相关操作
112 0