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! ```

Original source

Related problems