第一步:配置build
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "22.0.1" packagingOptions { exclude 'META-INF/NOTICE.txt' exclude 'META-INF/LICENSE.txt' } //签名 signingConfigs { release { storeFile file("txfund_keystore.jks") storePassword "123456" keyAlias "TXFund" keyPassword "123456" } } defaultConfig { applicationId "org.lmw.demo.slidingtab" minSdkVersion 14 targetSdkVersion 21 } buildTypes { release { // 不显示Log //buildConfigField "boolean", "LOG_DEBUG", "false" //minifyEnabled true //混淆 zipAlignEnabled true //内存对齐 shrinkResources true //移除无用的resource文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release android.applicationVariants.all { variant -> def stringsFile = new File(variant.outputs[0].processResources.assetsDir, "abc.txt") stringsFile.mkdir() } applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName = "APK_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } } lintOptions { checkReleaseBuilds false abortOnError false ignoreWarnings true } // 渠道列表 productFlavors { _360 {} _91 {} QQ {} appChina {} baidu {} google {} //..... } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } } def releaseTime() { return new Date().format("yyyy-MM-dd HH-mm-ss", TimeZone.getTimeZone("GMT+8")) } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:support-v4:22.2.1' compile files('libs/xutils-library-2.4.7.jar') }
第二步:配置文件加入变量
<!-- 友盟Start --> <meta-data android:name="UMENG_APPKEY" android:value="……" /> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
第三步:将打包文件放如下位置
第四步:打开cmd
到指定项目路径下 gradle build
建议使用gradle assembleRelease
然后等待数秒后,即可打包成功,成功后在outputs里面找,文件名不带unsign即为打包成功了!
注:如果gradle无法执行,则手动配置gradle的环境变量