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

Android Kotlin viewBinding类型不匹配:推断为DrawerLayout期望ConstraintLayout如何解决

问题原因
  • 你误用了其他页面的绑定类:当前代码里用到的ActivityMainBinding对应的是项目中activity_main.xml布局,该布局的根节点为DrawerLayout,和你当前AskProfileImage页面的布局没有关联
  • ViewBinding生成的绑定类名称和布局文件名一一对应:你写的根节点为ConstraintLayout的布局如果命名为activity_ask_profile_image.xml,对应的绑定类就是ActivityAskProfileImageBinding,你需要用这个类来做绑定才会匹配布局类型
解决方法
  1. 替换绑定类的相关代码,修改后如下:
// 替换为AskProfileImage页面对应的绑定类
private lateinit var binding: ActivityAskProfileImageBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // 调用对应绑定类的inflate方法
    binding = ActivityAskProfileImageBinding.inflate(layoutInflater)
    // 不需要手动声明view类型,直接传入binding.root即可
    setContentView(binding.root)
}

如果你的布局文件名不是activity_ask_profile_image.xml,绑定类名对应布局文件名的大驼峰格式加Binding后缀即可,比如布局名为ask_profile_image.xml的话,绑定类就是AskProfileImageBinding。

  1. 如果修改后仍有报错,触发绑定类重新生成即可:点击Android Studio顶部菜单栏 Build -> Clean Project,执行完成后再点击 Build -> Rebuild Project。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:18:00