我试图通过abi将它们分开来最小化我的应用apk大小。我正在使用以下guide来执行此操作。
我遇到的问题是versionCode在输出apk上没有正确更新。我添加了printf来测试versionCode正在正确计算,它是。
任何想法都会有所帮助。
这是我的gradle文件。有些部分省略..
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.vblast.test"
minSdkVersion 14
targetSdkVersion 22
versionCode 41
versionName "1.4.7"
}
// Special flavor dimensions for different markets and
// versions paid and free.
flavorDimensions 'market', 'version'
productFlavors {
google {
dimension 'market'
}
amazon {
dimension 'market'
}
mobiroo {
dimension 'market'
}
// Base free version
free {
dimension 'version'
}
// Base pro version
pro {
dimension 'version'
}
}
splits {
abi {
enable true
reset()
include 'x86', 'armeabi', 'armeabi-v7a' //, 'mips'
universalApk false
}
}
}
// map for the version code
ext.versionCodes = [armeabi:1, 'armeabi-v7a':2, x86:3, mips:4]
import com.android.build.OutputFile
android.applicationVariants.all { variant ->
// assign different version code for each output
variant.outputs.each { output ->
int abiVersionCode = project.ext.versionCodes.get(output.getFilter(OutputFile.ABI))?:0
output.versionCodeOverride = (abiVersionCode * 1000000) + android.defaultConfig.versionCode
}
}