更新到 gradle 7 后方法 com.android.build.gradle.internal.core.MergedFlavor#setSigningConfig 的不明确方法重载

Jac*_*ień 5 android gradle android-gradle-plugin android-gradle-plugin-7

我刚刚将 gradle 从 6 更新到 7,将 AGP 从 4 更新到 7。我的 gradle 设置的一部分停止了编译。

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

这现在导致:

由于以下之间的原型重叠,无法解析为 [class com.android.build.gradle.internal.dsl.SigningConfig_Decorated] 调用哪个方法:[interface com.android.builder.model.SigningConfig] [interface com.android.build.api .dsl.ApkSigningConfig]

感觉variant.mergedFlavor现在返回一个继承自具有相同方法的SigningConfig&的类型ApkSigningConfig。不知道如何解决这个问题。

ppo*_*ski 1

我遇到了同样的问题,最终signingConfigs在一个variantFilter块内设置了https://developer.android.com/studio/build/build-variants#filter-variants

所以在你的情况下,它会是这样的:

variantFilter { variant ->
    if (variant.getName().contains("prodSe")) {
        android.defaultConfig.signingConfig signingConfigs.prodSeSigningConfig
    }
}
Run Code Online (Sandbox Code Playgroud)