刚接触到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.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE}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项目)

更多相关文章

  1. 2010-09-21 15:58 [摘]Android如何将程序打成jar包
  2. Android(安卓)studio 分渠道打包,引用不同的moudle
  3. 基于Android中获取资源的id和url方法总结
  4. "android sdk Content Loader's has encountered a problem"的解
  5. Android(安卓)强引用、软引用、弱引用、虚引用
  6. android打开闪光灯
  7. Android的adb工具
  8. android 合并录音文件
  9. 【Android】解决File中文名字问题

随机推荐

  1. android设置Activity背景色为透明的2种方
  2. android每日一问【2011-09-17】
  3. android 利用shape实现环形进度条
  4. Android下native code(C++)的编译,NDK的使用
  5. 新书内容连载(3):Android(安卓)SDK中常用命
  6. android gravity and LinerarLayout for
  7. 跟我学Android4 之 第一部分:Android入门
  8. Android(安卓)SDK r20.x更新时,没有Androi
  9. android Makefile
  10. android中根据控件宽度,实现展示文本内容,