Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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/android/216.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
Java 带有依赖项注入的main活动_Java_Android - Fatal编程技术网

Java 带有依赖项注入的main活动

Java 带有依赖项注入的main活动,java,android,Java,Android,我只想在我的类MainActivity中使用依赖项注入。这就是我尝试过的: public类MainActivity扩展AppCompatActivity实现View.OnClickListener{ 私人扫描仪; 公共维护活动(扫描仪){ this.scanner=扫描器; } 但它给了我一个错误 没有零参数构造函数 我从这个错误中了解到,方法MainActivity()不应该有任何参数。但是如果没有任何参数,它应该如何工作呢???这意味着,您还必须创建一个具有零参数的构造函数 请记住,系统将

我只想在我的类MainActivity中使用依赖项注入。这就是我尝试过的:

public类MainActivity扩展AppCompatActivity实现View.OnClickListener{
私人扫描仪;
公共维护活动(扫描仪){
this.scanner=扫描器;
}
但它给了我一个错误

没有零参数构造函数


我从这个错误中了解到,方法
MainActivity()
不应该有任何参数。但是如果没有任何参数,它应该如何工作呢???

这意味着,您还必须创建一个具有零参数的构造函数

请记住,系统将为您创建实例,android需要一个空构造函数

这适用于应用程序的启动活动以及通过意图启动的所有活动。 您会收到生命周期回调,如
onCreate
onResume
onPause
,等等。但您通常不会实例化这样的活动

请查看活动生命周期以及Android如何处理活动:


我建议您创建setter来设置引用,而不要使用DI构造函数。

基于构造函数的DI对活动不起作用,因为Android框架实例化了它们,而不是DI框架。因此,您需要使用创建后注入,而不是基于构造函数的注入。我不知道您使用的是什么DI框架,但这里有一些关于匕首的文件,展示了如何做到这一点