Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 匕首与数据绑定_Android_Mvvm_Dagger 2_Android Databinding_Dagger - Fatal编程技术网

Android 匕首与数据绑定

Android 匕首与数据绑定,android,mvvm,dagger-2,android-databinding,dagger,Android,Mvvm,Dagger 2,Android Databinding,Dagger,我有一个MVVM项目,其中有扩展BaseObservable的ViewModel类。现在,如果在我的ViewModel中放入@Inject类,编译将失败,并出现许多错误,如:“错误:包xxx.databinding不存在” 我能用gradle技术找出导致这种情况的实际错误吗?数据绑定真的支持@Inject吗 编辑: 代码与 在这一点上,我添加了dagger,并试图将存储库@注入到扩展BaseObservable的视图模型中。一旦我将@Inject添加到视图模型中,我就无法编译Dagger使用数据

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

我能用gradle技术找出导致这种情况的实际错误吗?数据绑定真的支持@Inject吗

编辑:

代码与


在这一点上,我添加了dagger,并试图将存储库@注入到扩展BaseObservable的视图模型中。一旦我将@Inject添加到视图模型中,我就无法编译

Dagger使用数据绑定工作,您的设置有问题

当您得到
错误:package xxx.databinding不存在时
意味着代码生成失败,并且由于数据绑定和dagger use代码生成问题可能存在于两个组件的设置中。 根据您的描述,您似乎没有正确配置匕首,也就是说,没有设置它应该如何提供您正在注射的对象


确保您执行了“满足依赖项”和“构建图表”下的操作

解决此类问题的一般方法是查找与数据绑定无关的错误。一旦这些问题得到解决,您的数据绑定错误就会消失。数据绑定只是大声抱怨,因为构建在完成任务之前就失败了。不幸的是,这常常让人觉得大海捞针

如果有很多错误,可能需要增加显示的最大错误计数,否则错误输出可能会在打印实际根本原因之前结束。请看这里:


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

与前面提到的Uli一样,这是由于编译器限制了显示错误的数量

这样做:

1.通过执行以下操作增加显示的错误限制 在android块内的子模块gradle文件中添加此代码段

kapt {
    javacOptions {
        // Increase the max count of errors from annotation processors.
        // Default is 100.
        option("-Xmaxerrs", 1000)
    }
}
2.查找与绑定无关的错误并修复它们。 i、 e(修复app/src/.文件夹中的错误,忽略app/build/generated/.中与绑定相关的错误)


查看此项和此项以了解更多信息。

请显示代码添加了指向我克隆的示例项目的链接以及我所做更改的说明。我已经知道你在说什么,我只是想知道错误是什么。谢谢你的链接。糟糕的是,google没有为gradle模板提供这些默认设置。原来这是最简单的错误“匕首不支持注入到私有字段”。非常感谢你的帮助。