之前没使用过databinding,在移项目的时候,报了这个异常。
在尝试解决这个问题的时候,看了很多博客并没有解决。
无意中发现了问题的关键,所以记录下来,也许你的问题和我的会差不多(*^__^*)
编译时候的报错,是这个样子的:
反正大概的意思就是databinding这个包不存在,那需要的类找不到了。
用过databinding的同学应该都知道,databinding这个包以及此包包含的类都是自动生成的。
应该在这个位置:Android Studio 将项目切至 project 选项,在项目在下一层级的 build 中,具体见下图。
遇到此类问题,我建议尝试的第一步不是着急去找问题所在,而是
或者,将build文件夹删除,重新编译试一试。先排除工具可能带来的问题。
如果并没有解决。那考虑google一下吧:databinding 程序包 不存在
总结一下看过的几篇博客的解决方案:一般都是使用databinding的xml的问题。
1、方法名不对应
2、语法有问题
3、类名的全路径写错了
总之,所有的博客,给出的都是databinding使用的时候,xml里面的语法或者使用姿势有问题。
我也亲自尝试,这些确实会导致 程序包找不到这种错误的。
如果你经过检查,发现自己的失误修改后成功解决问题了。那OK。如果还是不行,那么你的问题,也许和我的问题,是一样的。
我检查了好多次,也查了databinding的使用以及注意事项,但是我发现我的用法和姿势都是没有问题的。那么问题到底出在哪里呢?databinding有那么坑么,甭管他坑不坑了,问题不解决,项目就进行不下去啊!!
再回到编译报出的错误,我想从AS告诉我的信息里再找一找原因。
上图,我已经标出了。一个与databinding无关的报错。是关于EventBus的错误。
这在日常工作中其实是很难出现的,编译器同时报出两个编译时异常。
这是在什么情境下呢。我是在移项目的时候,将原本的项目,抽出一部分功能做一个SDK ,我的做法是想把所有的编译异常解决,按照这种思路,出现了这种场景。
你肯定不能相信,最后面的这个异常,与databinding有什么关系?
我也觉得是没关系的。但是我把这个异常解决了以后,databinding的异常就消失了,消失了,消失了。
特瞄的,真正的问题,并不是databinding,而是出现在报错最后面的那么不起眼的异常!
总结:databinding包以及包含的类,是在编译的时候生成的。在编译出现错误的时候,那么可能会报出databinding包找不到或者类找不到的异常。(不仅仅databinding会导致,别的问题,也可能会导致)。
你如果实在找不到原因,试着多看几遍异常信息,看会不会有所发现呢?
网友评论