Android gradle plugin(7.0.0-alpha15) 移除了 variantFilter 属性,如何恢复功能?

标签 android gradle android-gradle-plugin gradle-kotlin-dsl

当前的 build.gradle.kts:

android {
  // ...
  variantFilter {
        ignore = run {
            val isSim = flavors[0].name == "sim"
            val isNet = !isSim

            val isU = flavors[1].name == "custom"
            val isMain = !isU

            val buildType  = buildType.name
            val isDebug    = buildType == "debug"
            val isRelease  = buildType == "release"

            (isSim && isRelease) ||
                    (isSim && isU)
        }
    }
}
如何在新版本的插件中创建类似的配置?
更新:
使用答案,上面的代码如下:
    android {
        androidComponents.beforeVariants {
            it.enabled = run {
                val isSim = it.productFlavors[0].second == "sim"
                val isNet = !isSim

                val isU = it.productFlavors[1].second == "custom"
                val isMain = !isU

                val isDebug    = it.buildType == "debug"
                val isRelease  = it.buildType == "release"

               !((isSim && isRelease) || (isSim && isU))
            }
        }
    }

最佳答案

Variant API 将在 AGP 7.0.0 中更改为延迟评估模型,现在看来 Alpha 15 已经删除了旧的 API。展望 future ,您将需要使用 androidComponents DSL,它可以访问变体。查看 beforeVariants阻止选择性地禁用您的变体:

android {
  androidComponents.beforeVariants { variantBuilder ->
    // variantBuilder provides access to buildType and flavor names.
    // It has an 'enabled' property which you could use to disable some variants
    // (logic may need to be inverted from your existing 'ignore' block)
  }
}

关于Android gradle plugin(7.0.0-alpha15) 移除了 variantFilter 属性,如何恢复功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67330818/

相关文章:

android - travis ci 构建失败 - 原因 : PermGen space

android - 如何获取 MediaCodec 编码器的步幅和 Y 平面对齐值

android - 使用 JSON 在 Groovy/Grails 中创建对象

gradle - java.lang.IllegalStateException:不支持替换其他插件可能已经使用的现有任务

android - 库模块在我的项目应用程序模块android中不起作用

android - 资源安卓 :attr/fontVariationSettings and error: resource android:attr/ttcIndex not found

java - 构建 APK 时出现错误 :Execution failed for task ':app:transformClassesWithJarMergingForDebug' . >

java - 当显示键盘时使底部布局保持在底部,而其他布局向上移动

intellij-idea - 为什么 Android Studio/Gradle 在没有进行任何更改的情况下重建我的应用程序?

android - 我可以防止Android Studio的构建速度变慢吗?