You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至Kotlin DSL后动态功能模块无法设置buildFeatures的dataBinding属性

原因说明

你遇到的报错主要来自两个问题:

  1. 动态功能模块使用的配置类是com.android.build.gradle.DynamicFeatureExtension,而非主应用模块的AppExtension,所以你在AppExtension中自然找不到对应属性
  2. Kotlin DSL为强类型语法,dataBinding属性的赋值需要显式调用isEnabled,和Groovy的动态赋值语法有差异
解决方案
  • 第一步:确认动态功能模块的插件配置正确
    模块级build.gradle.kts头部必须引入动态功能模块插件,用到Kotlin的话同时引入kapt插件:
    plugins {
        id("com.android.dynamic-feature")
        id("kotlin-android")
        id("kotlin-kapt") // dataBinding需要kapt支持
    }
    
  • 第二步:使用Kotlin DSL适配的buildFeatures写法
    直接在模块级配置文件中使用如下代码即可开启dataBinding:
    android {
        buildFeatures {
            dataBinding.isEnabled = true
        }
    }
    
  • 第三步:统一全局配置的适配(可选)
    如果你在根工程/规约插件中对所有模块做统一配置,需要同时覆盖两种扩展类型:
    // 适配主App模块
    plugins.withType<com.android.build.gradle.AppExtension> {
        buildFeatures {
            dataBinding.isEnabled = true
        }
    }
    // 适配动态功能模块
    plugins.withType<com.android.build.gradle.DynamicFeatureExtension> {
        buildFeatures {
            dataBinding.isEnabled = true
        }
    }
    
  • 第四步:修复IDE异常报红
    若修改后编译正常但IDE仍提示未找到引用,清理IDE缓存重启即可:依次点击 File -> Invalidate Caches...,勾选清空文件系统缓存选项后重启IDE。

内容的提问来源于stack exchange,提问作者Rainmaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 00:30:03