简体   繁体   English

在Dagger中注入我的模块会给我NPE

[英]Injecting my module in Dagger gives me NPE

Im trying to implement a simple example with Dagger where Module returns just a string 我试图用Dagger实现一个简单的示例,其中Module仅返回一个字符串

Module is : 模块是:

@Module(
    injects = { MainActivity.class }
)
 public class MyDataModule {

public MyDataModule() {
}

@Provides
public MyDataModule provideMyData() {
    return new MyDataModule();
}


public String createMyDataItems() {
    return "MyDataString";
}

}

And Activity : 和活动:

@Inject MyDataModule myDataModule;

TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = (TextView) findViewById(R.id.my_data);
    textView.setText(myDataModule.createMyDataItems());

}

}

And I get a NPE at the last line : 我在最后一行得到了NPE:

textView.setText(myDataModule.createMyDataItems());

You need to instantiate the object graph with 您需要使用实例化对象图

ObjectGraph.create(new MyDataModule())

You can read more in the official tutorial . 您可以在官方教程中阅读更多内容。

As a side note, I recommend you try setting up Dagger 2 instead of Dagger 1 另外,我建议您尝试设置Dagger 2而不是Dagger 1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM