I think it might be a little cleaner. It may not be so 100% simple, but I do not like this * 1000000 trick and dictionary:
ext { versionCodeBase = 30 // 1 higher than current highest versionCode in Play store } android { splits { density { enable true // just enable them all } abi { enable true universalApk false } } android.applicationVariants.all { variant -> variant.outputs.eachWithIndex { output, outputIndex -> output.versionCodeOverride = project.ext.versionCodeBase + outputIndex println variant.buildType.name + ' - ' + output.getFilter(OutputFile.ABI) + ' - ' + output.getFilter(OutputFile.DENSITY) + ': ' + output.versionCodeOverride } } }
Note. I eachWithIndex over options using eachWithIndex .
This works because density and abi will not change on the user device. This script will require more work if you allow individual apk files for minSdkVersion .
Lemme just adds script output:
debug - mips64 - null: 30 debug - x86_64 - null: 31 debug - x86 - null: 32 debug - armeabi-v7a - null: 33 debug - armeabi - null: 34 debug - mips - null: 35 debug - arm64-v8a - null: 36 debug - mips64 - xxxhdpi: 37 debug - x86_64 - xxxhdpi: 38 debug - x86 - xxxhdpi: 39 debug - armeabi-v7a - xxxhdpi: 40 debug - armeabi - xxxhdpi: 41 debug - mips - xxxhdpi: 42 debug - arm64-v8a - xxxhdpi: 43 debug - mips64 - mdpi: 44 debug - x86_64 - mdpi: 45 debug - x86 - mdpi: 46 debug - armeabi-v7a - mdpi: 47 debug - armeabi - mdpi: 48 debug - mips - mdpi: 49 debug - arm64-v8a - mdpi: 50 debug - mips64 - ldpi: 51 debug - x86_64 - ldpi: 52 debug - x86 - ldpi: 53 debug - armeabi-v7a - ldpi: 54 debug - armeabi - ldpi: 55 debug - mips - ldpi: 56 debug - arm64-v8a - ldpi: 57 debug - mips64 - xxhdpi: 58 debug - x86_64 - xxhdpi: 59 debug - x86 - xxhdpi: 60 debug - armeabi-v7a - xxhdpi: 61 debug - armeabi - xxhdpi: 62 debug - mips - xxhdpi: 63 debug - arm64-v8a - xxhdpi: 64 debug - mips64 - hdpi: 65 debug - x86_64 - hdpi: 66 debug - x86 - hdpi: 67 debug - armeabi-v7a - hdpi: 68 debug - armeabi - hdpi: 69 debug - mips - hdpi: 70 debug - arm64-v8a - hdpi: 71 debug - mips64 - xhdpi: 72 debug - x86_64 - xhdpi: 73 debug - x86 - xhdpi: 74 debug - armeabi-v7a - xhdpi: 75 debug - armeabi - xhdpi: 76 debug - mips - xhdpi: 77 debug - arm64-v8a - xhdpi: 78 release - mips64 - null: 30 release - x86_64 - null: 31 release - x86 - null: 32 release - armeabi-v7a - null: 33 release - armeabi - null: 34 release - mips - null: 35 release - arm64-v8a - null: 36 release - mips64 - xxxhdpi: 37 release - x86_64 - xxxhdpi: 38 release - x86 - xxxhdpi: 39 release - armeabi-v7a - xxxhdpi: 40 release - armeabi - xxxhdpi: 41 release - mips - xxxhdpi: 42 release - arm64-v8a - xxxhdpi: 43 release - mips64 - mdpi: 44 release - x86_64 - mdpi: 45 release - x86 - mdpi: 46 release - armeabi-v7a - mdpi: 47 release - armeabi - mdpi: 48 release - mips - mdpi: 49 release - arm64-v8a - mdpi: 50 release - mips64 - ldpi: 51 release - x86_64 - ldpi: 52 release - x86 - ldpi: 53 release - armeabi-v7a - ldpi: 54 release - armeabi - ldpi: 55 release - mips - ldpi: 56 release - arm64-v8a - ldpi: 57 release - mips64 - xxhdpi: 58 release - x86_64 - xxhdpi: 59 release - x86 - xxhdpi: 60 release - armeabi-v7a - xxhdpi: 61 release - armeabi - xxhdpi: 62 release - mips - xxhdpi: 63 release - arm64-v8a - xxhdpi: 64 release - mips64 - hdpi: 65 release - x86_64 - hdpi: 66 release - x86 - hdpi: 67 release - armeabi-v7a - hdpi: 68 release - armeabi - hdpi: 69 release - mips - hdpi: 70 release - arm64-v8a - hdpi: 71 release - mips64 - xhdpi: 72 release - x86_64 - xhdpi: 73 release - x86 - xhdpi: 74 release - armeabi-v7a - xhdpi: 75 release - armeabi - xhdpi: 76 release - mips - xhdpi: 77 release - arm64-v8a - xhdpi: 78
source share