“androidx.databinding 找不到符号”怎么办
昨天新的 android 项目发版了,产品同学通知要再上一版年前开发的版本,将年前开发的版本和现有版本进行合并,然后发版。
好在我有写完一版就打一个分支和创建一个 tag 的习惯。年前开发的版本由于没有上线,当时考虑到后期可能会用到,特意创建了一个分支,这个时候就用到了 (ps 这里提醒下各位读者小伙伴,写完一个版本之后一定要记得创建tag,方便后续的维护)。
于是我就单独创建了个文件夹,将项目 clone 到了这里,然后切换到刚刚发布的分支,然后使用
git merge 年前的分支名
将两个分支合并起来,当然也仔细解决了18个文件的冲突,解决完后,就出大问题了!
这下就把我给整懵逼了,没有报明显的错误,只是报了这个 DataBindingComponent 找不到符号。
我当时的第一反应是 肯定是合并的文件有错误 ,但是这次合并,单单是解决冲突就已经解决了 18个文件,如果去找所有这次合并的文件的话,工作量肯定很大了,所以我就开始找解决的方法。
可惜找了将近一个小时后,还是一无所获,查到的只是如何能看到更详细的错误,然而,无论怎么尝试,报错的信息还是没有变化,这个时候我的心态将近崩了!
最后还是谷歌帮了我,我将错误信息翻译成了英文,即不再搜索「DataBindingComponent 找不到符号」,转而在谷歌搜索「Cannot find DataBindingComponent」,当然没有查词典,就是直译过来的,搜索的结果多了起来,排除掉我看过的 csdn、掘金、简书等等,只看 stackoverflow ,结果终于在一个隐秘的回答中找到了答案。
之所以说隐秘,是因为解决我问题的是这个回答中的页面居中位置的回答
正是这个回答解决了我的难题。
解决方法:在我们的项目的 src/main/java 下创建 androidx文件夹,然后在 androidx 文件夹下创建 databinding 文件夹,然后再到 databinding 文件夹下创建DataBindingComponent.java 文件,文件内容就是
package androidx.databinding;public interface DataBindingComponent{}
然后重新编译项目,那么具体的错误信息就爆出来了
下面是我的具体错误
就是这么一个小错误让我浪费了这么长时间,哎,好在解决了
这应该就是 databinding 的一个bug,好在已经有人趟过这个坑了,哈哈
各位读者小伙伴有没有遇到这样的问题呢?如果我这个文章帮到了你,点个赞吧