admin管理员组文章数量:1642221
我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
问题描述
Android Studio版本:3.6.3
我们知道,AS在3.6版本是引入了ViewBinding功能,具体功法此处不赘述。
有时候在导入第三方使用了ViewBinding功能的项目时,会发现点击某些页面崩溃,并报如上错误。
原因分析
出现这种现象的原因一般是我们项目中使用了include布局,导致include布局中的id不能被识别。
<include
android:id="@+id/title"
layout="@layout/title_base">
</include>
title_base文件的布局格式如下:
<LinearLayout xmlns:android="http://schemas.android/apk/res/android">
......
</LinearLayout>
解决方案
- 去除include标签的id,比如去掉android:id="@+id/title";
- 使用merge标签;比如把title_base文件中的LinearLayout用merge替换;
- 使用bind将include所包含的布局引入进来;
比如定义:
private ActivityMainBinding binding;
private TitleBaseBinding titleBaseBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
titleBaseBinding = TitleBaseBinding.bind(binding.getRoot());
}
使用titleBaseBinding即可获取inlcude布局中的控件。
其它解决方案
有消息说AS 4.0中已经解决了此问题。
本文标签: 错误requiredmissingViewBindingxxx
版权声明:本文标题:ViewBinding使用时出现Missing required view with ID: xxx 错误 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729333880a1196735.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论