MVP Dagger2 报错 cannot be provided without an @Inject constructor...

错误

Error:(16, 10) 错误: com.xxx.xxx.presenter.MySorePresenter cannot be provided without an @Inject constructor or from an @Provides- or @Produces-annotated method.

com.xxx.xxx.MySorePresenter is injected at
com.xxx.xxx.view.activity.MySoreActivity.presenter
com.xxx.xxx.view.activity.MySoreActivity is injected at
com.xxx.xxx.di.components.MySoreComponent.inject(activity)

定位错误

-看报错指向,其指向的是:MySoreComponent

@UserScope
@Component(dependencies = ApplicationComponent.class,modules = {MySoreModule.class, ActivityModule.class})
public interface MySoreComponent extends ActivityComponent{

    void inject(MySoreActivity activity);

}
  • 其实际指向的是MySoreModule
@Module
public class MySoreModule {

    private MySoreContract.View mView;

    public MySoreModule(MySoreContract.View mView){
        this.mView = mView;
    }

    @Provides
    @UserScope
    public MySoreContract.View provideView(){
        return  mView;
    }
}
  • 再看一下MySoreContract 类和MySorePresenter 里面的内容
public interface MySoreContract {

    interface Presenter{
        void getListByPage(int page,String userid,String pageId,String method);
    }

    interface View{

        void showLoading();
        void showNoData();
        void updateListUI(List<TaskInfo.Ds> dsList);
        void showOnFailure();
    }
}
  • MySorePresenter
public class MySorePresenter implements MySoreContract.Presenter {

    private MySoreContract.View view;
    public MySorePresenter(MySoreContract.View view){
        this.view = view;
    }

    @Override
    public void getListByPage(int page, String userid, String pageId, String method) {
    }
}

解决错误

在MySorePresenter 类中能过@Inject注解其构造函数,如下:

public class MySorePresenter implements MySoreContract.Presenter {

    private MySoreContract.View view;

    @Inject
    public MySorePresenter(MySoreContract.View view){
        this.view = view;
    }

    @Override
    public void getListByPage(int page, String userid, String pageId, String method) {

    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值