1.duplicate attribute

AS提示主活动xml存在重复属性
解决:发现我在layoutLinearLayout层下都引入了

xmlns:android="http://schemas.android.com/apk/res/android"

删掉LinearLayout下的这句话即可。

在查找解决方法时注意到,这个错误的产生原因还可能是由于:layout设置了weight和height。

解决方法: 删除layout中的weight和height即可。

2.错误: 找不到符号 符号: 类 ActivityMainBindingImpl 位置:

问题来源:对应提示位置下的xml文件,标签variable,和属性绑定的'@{}'中的内容有误。

我的错误是variable里绑定的类是大写User类,但是name=‘user’,然后写了@{User.name},注意引用时要和你variable中的name值一致,写对了的时候你写user.就会有提示让你选择属性。
解决方法: 把@{User.name}改写为@{user.name}。

3.错误: 程序包Model不存在

错误原因:把bean类移动到某包中后,引用这个bean类的xml自动生成的binding会报错。
正常的:
在这里插入图片描述
在这里插入图片描述
出错的:
在这里插入图片描述
学习MVVM遇到的Error记录_第1张图片
对比发现唯一区别就是出错的这边多了一层package。Model是package,它直接用Model.bean类肯定是找不到的,应该是完整路径com.xxx.Model.bean类或者直接bean类才对。直接改这个文件是没用的,这个是系统自动生成的。

解决方法:
把Bean类从包内移动出来就好了,AS真的很气人啊。

4.AS报错:"****/ data binding error ****msg:Only one layout element and one data element"

解决方法:
一个xml文件的标签里只能有一个data标签和一个子layout。当你使用了多个控件或者布局时,需要把它们都放入一个layout里,和ScrollView只能有一个孩子类似,只不过它不但要求仅可以有一个layout,并且仅可以有一个data标签,当然也可以都没有,也是不会在编译时报错的。

5.在MainActivity里怎么都使用不了ActivityMainBinding类

解决方法:
1.检查是否在app的gradle设置了databinding{enable=true}
2.若设置了,则尝试clean,在rebuild一下
3.如果还不可以,看下图,找到对应位置看你有没有生成ActivityMainBindingImpl类,有的话自己手动去个包吧,在MainActivity里import com.xxx.xxx.databinding.ActivityMainBinding.导报成功(不爆红)后,在下面使用的时候AS可能还没有反应,不会在你拼写的时候有补全提示,这时候还需要自己手动输入类名来使用。
学习MVVM遇到的Error记录_第2张图片

更多相关文章

  1. ubuntu 编译 Android 出现的若干错误及解决方法
  2. 解决:Android Studio添加依赖时出现“Manifest merger failed”的
  3. android开发过程遇到的一些错误
  4. android webView错误处理
  5. Android Studio高级控件(自动提示文本框)
  6. Android 实现任务栏出现类似短信的提示功能
  7. 新版eclipse编写Android 时经常报的错误 -support-v7
  8. Androidx和Android support库共存时问题:appComponentFactory 错

随机推荐

  1. Android(安卓)- 开发者应该深入学习的10
  2. Android打包jar 和使用第三方库
  3. android map的使用方法
  4. Android开发知识概要
  5. Android(安卓)FrameLayout子view居中(左居
  6. Android核心功能
  7. Android的init过程(二):初始化语言(init.rc)解
  8. android之声音管理器AudioManager的使用
  9. Android之NDK开发
  10. 构建Android电话相关的应用