Gradle: applicationVariants.all skips one variant
android, gradle
Solution
I solved using this code:
buildTypes {
release {
signingConfig signingConfigs.release
}
applicationVariants.all { variant ->
def apk = variant.packageApplication.outputFile;
def newName = apk.name.replace(".apk", "-renamed.apk");
variant.packageApplication.outputFile = new File(apk.parentFile, newName);
if (variant.zipAlign) {
variant.zipAlign.outputFile = new File(apk.parentFile, newName.replace("-unaligned", ""));
}
}
}
The block `applicationVariants.all {...}` is now outside the `release {...}` block.
I think `variant.zipAlign.outputFile` makes the difference.
Problem
I'm using Gradle to compile my Android project: ``` buildTypes { release { signingConfig signingConfigs.release applicationVariants.all { variant -> def file = variant.outputFile def fileName = file.name fileName = fileName.replace(".apk", "-renamed.apk") variant.outputFile = new File(file.parent, fileName) } } } ``` Not all output files are renamed, it always skips 1 file. Why? ``` myapp-debug-unaligned-renamed.apk <-renamed, OK! myapp-release.apk <-NOT renamed, WRONG! myapp-release-unaligned-renamed.apk <-renamed, OK! ```