这个问题通常发生在Dagger注入的过程中,因为Dagger无法找到要注入的对象的提供者。解决方法是在Dagger模块中提供一个@Provides注解的方法或者在要注入的对象中添加@Inject构造
函数
。
举个例子,在Dagger模块中,如果要提供一个
Database
Helper对象,则可以这样做:
@Module
public cl
as
s MyModule {
@Provides
public
Database
Helper provide
Database
Helper(Context context) {
return new
Database
Helper(context);
在要注入
Database
Helper对象的类中,可以这样添加@Inject构造
函数
:
public cl
as
s MyActivity extends AppCompatActivity {
@Inject
Database
Helper
database
Helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// inject dependencies
DaggerMyComponent.builder().myModule(new MyModule(this)).build().inject(this);
这样,Dagger就能找到要注入的对象的提供者了。