DataBinding的坑!!!

databinding是android的一款mvvm框架(对双向绑定本人持怀疑态度)。将很多原本需要在java代码中处理的业务逻辑可以在xml中实现。极大的简化了java代码的逻辑。强化了xml。

但是笔者在使用中出现了问题。在android studio 2.2环境下。启用robotium和espresso出现如下问题:

IllegalAccessError : Class ref in pre-verified class resolved to unexpected implementation

一番谷歌这个问题是因为databinding会生成一套自己的test文件,然后espresso认为冲突。

https://code.google.com/p/android/issues/detail?id=182715
然后在这里找到问题发现在5.0以下的手机和模拟器会出现这个问题。

In 2.3, this will be fixed.
By default, we are disabling data binding in test projects. Your test code can still access data binding generated classes but you cannot have test specific data binding adapters / layouts which we don’t think anybody does anyways.
This new setup also makes it easier to use proguard.

If for whatever reason you need to use data binding in test code (e.g. create a layout in test project with data binding enabled), you need to turn it on in your gradle file via:

android {
   dataBinding {
        enabled = true
        enabledForTests = true
    }
}

好吧,升级吧。
但是升级完以后发现databinding不起作用了,所有的br文件都生成不了,继续百度。

 apt 'com.android.databinding:compiler:2.3.0'

原来2.3的databinding需要添加apt插件!!!!!!!
好吧 ,使用databinding之后的ui测试终于跑起来了。不知道是安卓不重视ui测试还是databinding现在没有普及。这个确实很尴尬。

发布了6 篇原创文章 · 获赞 0 · 访问量 8266
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览