记一次关于使用dataBinding的两个编译问题(import xxx.xxx.ActivityxxxBindingImpl) (couldn't make a guess from)


关于命名规范

  • 包名开头需要小写,类名开头需要大写

正常写Activity时,可以没有要求的很严格,但是像类似包含了dataBinding的类和包都必须要规范书写,所以尽量在创建时需要进行规范命名

规定死的,强制规范命名的,类似 layout文件在创建时就不能大写

 

项目实现的功能:用databinding实现简单的 点击一次Button,textview 显示数值+1

写完运行时,同一个项目竟出现两个导致同一报错问题的错误

 

报错:

错误1:绑定在了错误的属性中

先把错误点列出来:

 

@{()->data.add()}

这句应该是写在onClick里面的,但是被我粗心写在了Button下的text里 粗心导致了我的第一个错误

 

运行时报错如下:有点显示不全

 

CSDN上找到的类似的错误:对应我没显示全的内容,顺便有了解决过程

图片来源:DataBinding找不到符号,import xxx.xxx.ActivityxxxBindingImpl

其中小图:

 

没错我就是大佬说的绑定属性项出现了问题

因为没有具体的报红,大佬给出的解决方法是:

点击一下build中 Found data binding error(s): 右侧就是具体报错的原因

 

找到问题: 我的项目因为只写了一个类,就两个控件,很快就找到是xml中Button的问题

 

解决:

 


 

错误2:包名、类名不规范导致的问题

同样的,先写出问题所在:

是包名和类名都是不规范的命名,正确的应该是包名小写,类名大写

 

运行时错误如下:

这里根据报错信息去度娘上面找解决方法的时候,一直以为是下面这里的问题,因为这类问题,一般是xml文件这部分的书写错误

<data>
    <variable
        name="data"
        type="com.example.study_test.Six.mViewModel" />
</data>

但是对照了下type和所写的自定义类名字一样,位置信息也是对的,排除了写错的问题

 

在CSDN上找到了一篇databingding包名不能大写?的文章,点进去一看也是我这个问题,但是文章只强调了包名需要大写,然后将我的包名Six改成了six,一运行,还是不行

 

又找了很久找到了一篇老外的类似错误求助文章,看到他评论里的问题回答,不光是包名,绑定数据的类名也有要求,然后问了下身边的大佬,说这个是默认的规范,原来是我从一开始学的时候就没有注意规范这方面的问题

包名小写,类名大写,都改了之后,运行,芜湖~解决

 

总结:还是要在学习阶段规范书写,很重要


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM