使用DataBindingUtil.setContentView时类型推断不足的问题求助
Data Binding 初始化报错「Not enough information to infer type variable T」解决方案
核心解决方法:直接使用生成的Binding类初始化
放弃DataBindingUtil,直接调用自动生成的ActivityMainBinding类的初始化方法,让编译器明确推断类型:
val binding = ActivityMainBinding.setContentView(this)
如果是在Fragment中初始化,使用inflate方法:
val binding = ActivityMainBinding.inflate(layoutInflater, container, false)
排查要点
- 检查布局文件结构:布局根标签必须用
<layout>包裹,否则Data Binding不会生成对应的Binding类:<layout xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 你的布局内容(LinearLayout/ConstraintLayout等) --> </layout> - 清理重建项目:执行
Build > Clean Project后再Build > Rebuild Project,缓存可能导致Binding类未正确生成。 - 调整Gradle配置:确保app模块的build.gradle中配置正确,可关闭View Binding避免冲突:
android { ... buildFeatures { dataBinding true viewBinding false // 不需要View Binding时关闭 } }
内容的提问来源于stack exchange,提问作者Ahmed Khaled
相关产品推荐
相关产品推荐

