匕首和数据绑定

时间:2017-07-19 21:27:22

标签: android mvvm dagger-2 android-databinding dagger

我有一个MVVM项目,我有ViewModel类扩展BaseObservable。现在如果将@Inject类放在我的ViewModel中,那么编译就会失败并出现许多错误:"错误:包xxx.databinding不存在"

我能否找到使用某种gradle技术导致此错误的实际错误? @Inject是否真的支持数据绑定?

编辑:

代码与https://github.com/googlesamples/android-architecture/tree/todo-mvvm-databinding/

完全相同

因为我添加了匕首,我试图将存储库注入到扩展BaseObservable的视图模型中。只要我将@Inject添加到视图模型中,我就无法编译

2 个答案:

答案 0 :(得分:1)

解决此类问题的一般方法是找到与数据绑定相关的错误。一旦修复,您的数据绑定错误就会消失。数据绑定只是大声抱怨,因为构建失败才能完成它的工作。不幸的是,这通常感觉就像在大海捞针一样。

如果您有很多错误,可能需要增加显示的最大错误计数,否则错误输出可能会在打印实际根本原因之前结束。见这里:https://stackoverflow.com/a/35707088/436417

Dagger的@Inject通常与数据绑定兼容。

答案 1 :(得分:0)

Dagger使用数据绑定,你的设置有问题。

当你得到error: package xxx.databinding does not exist时,这意味着代码生成失败,并且因为数据绑定和匕首使用代码生成问题可能都在两个组件的设置中。 根据您的描述,您似乎没有正确配置匕首,即没有设置它应该如何提供您注入的对象。

确保您在"满足依赖关系"下执行了操作。和#34;构建图表"从这里https://google.github.io/dagger//users-guide.html