Skip to content

fix: Fulladle generates wrong APK paths for variants with multiple flavor dimensions#503

Open
RyuNen344 wants to merge 1 commit into
runningcode:masterfrom
RyuNen344:fix/multiple-dimension
Open

fix: Fulladle generates wrong APK paths for variants with multiple flavor dimensions#503
RyuNen344 wants to merge 1 commit into
runningcode:masterfrom
RyuNen344:fix/multiple-dimension

Conversation

@RyuNen344
Copy link
Copy Markdown

Summary

Fulladle manually constructs APK paths from variant.productFlavors, but the current logic does not
handle variants with multiple flavor dimensions
correctly.

In FulladlePlugin.kt, the flavor part is built like this:

val flavorName = variant.productFlavors.joinToString("") { it.second }
val flavorPath = variant.productFlavors.joinToString("/") { it.second }

val flavorName = variant.productFlavors.joinToString("") { it.second }
val flavorPath = variant.productFlavors.joinToString("/") { it.second }

For a variant composed from minApi24 and demo, this generates:

  • flavor name: minApi24demo
  • flavor path: minApi24/demo

However, AGP generates artifacts for minApi24DemoDebug like:

build/outputs/apk/minApi24Demo/debug/app-minApi24-demo-debug.apk
build/outputs/apk/androidTest/minApi24Demo/debug/app-minApi24-demo-debug-androidTest.apk

Reproduction

Configure an Android module with multiple flavor dimensions:

android {
    flavorDimensions "api", "mode"
    productFlavors {
        minApi24 {
            dimension "api"
        }
        demo {
            dimension "mode"
        }
    }
}

Then run Fulladle for minApi24DemoDebug.

Expected behavior

Fulladle should reference the actual APK paths generated by AGP:

build/outputs/apk/minApi24Demo/debug/app-minApi24-demo-debug.apk
build/outputs/apk/androidTest/minApi24Demo/debug/app-minApi24-demo-debug-androidTest.apk

Actual behavior

Fulladle generates paths using the slash-joined flavor path and concatenated flavor name:

build/outputs/apk/minApi24/demo/debug/app-minApi24demo-debug.apk
build/outputs/apk/androidTest/minApi24/demo/debug/app-minApi24demo-debug-androidTest.apk

These files do not exist, so the generated Flank config points to invalid APK paths.

*
* If no variant is specified, all variants are considered a match.
*/
fun Variant.isExpectedVariantInModule(config: FulladleModuleExtension) =
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unused

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant