Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ambiguous method overloading for method com.android.build.gradle.internal.core.MergedFlavor#setSigningConfig after updating to gradle 7

I've just updated gradle from 6 to 7 and AGP from 4 to 7. There is part of my gradle setup that stopped compiling.

applicationVariants.all { variant ->
        if (variant.getName().contains("prodSe")) {               
            variant.mergedFlavor.signingConfig = signingConfigs.prodSeSigningConfig
        }
}

This now causes:

Cannot resolve which method to invoke for [class com.android.build.gradle.internal.dsl.SigningConfig_Decorated] due to overlapping prototypes between: [interface com.android.builder.model.SigningConfig] [interface com.android.build.api.dsl.ApkSigningConfig]

Feels like variant.mergedFlavor now returns a type inheriting from both SigningConfig & ApkSigningConfig that have same methods. Not sure how to fix this.

like image 826
Jacek Kwiecień Avatar asked Aug 17 '21 07:08

Jacek Kwiecień


Video Answer


1 Answers

I had the same problem and I ended up setting signingConfigs inside a variantFilter block https://developer.android.com/studio/build/build-variants#filter-variants

So in your case, it will be something like this:

variantFilter { variant ->
    if (variant.getName().contains("prodSe")) {
        android.defaultConfig.signingConfig signingConfigs.prodSeSigningConfig
    }
}
like image 149
ppodgorski Avatar answered Oct 12 '22 08:10

ppodgorski