build.gradle在充当Lib时,需要配置
apply plugin: 'com.android.library'
而当是App时则需要配置
apply plugin: 'com.android.application'
当方法数超过65533时,有两种解决方法,第一种进行分包,第二种不检查方法数超过65533,而不检查方法数时有一个弊端,就是不能兼容低版本,我们来看下配置(注意:分包不只是配置,还需要在dependencies里面引包)
defaultConfig {
//分Dex包
multiDexEnabled=true
//不进行方法数检查,也就是说可以超过65533
dexOptions {
jumboMode = true
}
}
buildTypes可配置debug和relese版本不同的选项,也可配置多渠道打包
apply plugin: 'com.android.application'
def releaseTime() {
return new Date().format("yyyy.MM.dd", TimeZone.getTimeZone("UTC"))
}
buildTypes {
release {
//开启混淆
minifyEnabled true
//打包优化
zipAlignEnabled true
//去除不必要的resource资源
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
//打包时输出的APK文件自定义文件名配置
applicationVariants.all { variant ->
//旧版的设置APK打包名称
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = "${variant.productFlavors[0].name}yjt_${defaultConfig.versionName}_release_${releaseTime()}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
// 新版设置打包的APK名称
variant.outputs.all {
outputFileName =
"KZY_Phone_${defaultConfig.versionName}_${releaseTime()}_release.apk"
}
}
//开发测试版本
debug {
//versionNameSuffix "-debug"
zipAlignEnabled false
shrinkResources false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
//多渠道打包
productFlavors {
// dk {
// resValue "string", "app_name", "MyAppName" //在strings.xml生成一条资源,相当于<string name="app_name">MyAppName</string>
// resValue "string", "server_ip", "191.0.0.99" //同上
// resValue "color", "titleBarColor", "#ff0f3887"//在color.xml生成一条资源数据,原理和上面的string一样
// buildConfigField "String","server_iport","\"191.0.1.99:9088\"" //在BuildConfig生成一条String类型的静态数据,获取通过BuildConfig.server_iport拿到
// buildConfigField "String","rtc_version","\"2018-01-01\""
// manifestPlaceholders = [app_icon: "@mipmap/dk_launch_icon", //下面的配置都是配给Manifest的,在mainfest里面通过"${app_icon}"获取,下面同理
// CHANNEL_VALUE: "dk",
// APPTHEME:"@style/AppStartThemeDK",
// LAUNCHER_ACTIVITY:"com.test.ui.welcome.Welcome_dk"]
// }
}
}
假如你的项目中有用到.9.png图片,又或者你把JPG的图片扩展名改成png,这些都会使你打包失败,这时你需要加上这句话来屏蔽图片文件检测
aaptOptions {
cruncherEnabled = false //用来关闭Android Studio的PNG合法性检查的,直接不让它检查。
useNewCruncher = false
}
又假如你的逻辑代码没问题,但是由于兼容性等问题,Android studio给你标上了红线,你又打包不成功,我们又得屏蔽检测了,那我们加上下面的代码
lintOptions {
checkReleaseBuilds false
abortOnError false //在有错误时中止 false
}
要是你的项目还在用Httpclient,我想你还要加上下面的代码才可以
//允许使用HttpClient
useLibrary 'org.apache.http.legacy'
关于build.gradle配置先写这么多,后续还要更新,因为我记不住,必须记录下来,方便下次copy