昨天新的 android 项目发版了,产品同学通知要再上一版年前开发的版本,将年前开发的版本和现有版本进行合并,然后发版。

c20fb2ee7ad96fd23643b51cdad259d2.png

好在我有写完一版就打一个分支和创建一个 tag 的习惯。年前开发的版本由于没有上线,当时考虑到后期可能会用到,特意创建了一个分支,这个时候就用到了 (ps 这里提醒下各位读者小伙伴,写完一个版本之后一定要记得创建tag,方便后续的维护)。

db7237b85b8186597b529dc3071d52ca.png

于是我就单独创建了个文件夹,将项目 clone 到了这里,然后切换到刚刚发布的分支,然后使用

git merge 年前的分支名

将两个分支合并起来,当然也仔细解决了18个文件的冲突,解决完后,就出大问题了!

c87644e2c6ae5228583c88e002e13995.gif
52d80409c3163dc56fe8704ef078508e.png
c3929069d2db1c20a75d8d9f1a2c23f8.png

这下就把我给整懵逼了,没有报明显的错误,只是报了这个 DataBindingComponent 找不到符号。

我当时的第一反应是 肯定是合并的文件有错误 ,但是这次合并,单单是解决冲突就已经解决了 18个文件,如果去找所有这次合并的文件的话,工作量肯定很大了,所以我就开始找解决的方法。

可惜找了将近一个小时后,还是一无所获,查到的只是如何能看到更详细的错误,然而,无论怎么尝试,报错的信息还是没有变化,这个时候我的心态将近崩了!

6597000955527fedc6bf2a97204cd663.png

最后还是谷歌帮了我,我将错误信息翻译成了英文,即不再搜索「DataBindingComponent 找不到符号」,转而在谷歌搜索「Cannot find DataBindingComponent」,当然没有查词典,就是直译过来的,搜索的结果多了起来,排除掉我看过的 csdn、掘金、简书等等,只看 stackoverflow ,结果终于在一个隐秘的回答中找到了答案。

8021e962dc20f7a1f7a122adc9f2ecb7.png

之所以说隐秘,是因为解决我问题的是这个回答中的页面居中位置的回答

161f5821bb11924f871715816a49e20c.png

正是这个回答解决了我的难题。

解决方法:

在我们的项目的 src/main/java 下创建 androidx文件夹,然后在 androidx 文件夹下创建 databinding 文件夹,然后再到 databinding 文件夹下创建DataBindingComponent.java 文件,文件内容就是

package androidx.databinding;public interface DataBindingComponent{}

然后重新编译项目,那么具体的错误信息就爆出来了

下面是我的具体错误

e6611f2bd961460a61ae5a2362b8c395.png

就是这么一个小错误让我浪费了这么长时间,哎,好在解决了

这应该就是 databinding 的一个bug,好在已经有人趟过这个坑了,哈哈

各位读者小伙伴有没有遇到这样的问题呢?如果我这个文章帮到了你,点个赞吧

af582c5100f3593787b452a4cb80ea87.png
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐