Android 数据加密和匕首错误2
我正在使用数据绑定开发一个项目,但在添加Dagger2并实现模块、组件和移植之后,我遇到了以下错误: 错误:(8,74)错误:包com.anda.soft.app.databinding不Android 数据加密和匕首错误2,android,dagger-2,android-databinding,Android,Dagger 2,Android Databinding,我正在使用数据绑定开发一个项目,但在添加Dagger2并实现模块、组件和移植之后,我遇到了以下错误: 错误:(8,74)错误:包com.anda.soft.app.databinding不 存在 错误:(16,13)错误:找不到符号类ActivityMainBinding 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败。 java.lang.IllegalArgumentException:不是有效的组件方法:injectPresentationFragmen
存在
错误:(16,13)错误:找不到符号类ActivityMainBinding
错误:任务“:app:compiledBugJavaWithJavaC”的执行失败。 java.lang.IllegalArgumentException:不是有效的组件方法:injectPresentationFragmentPresenter() 这是我的模块:
@Module
public class Modul {
private Context context;
public Modul(Context context){
this.context = context;
}
@Provides
public MainActivity provideMainActivity(){
return new MainActivity();
}
@Provides
public PresentationFragmentPresenter providePresentationFragment(){
return new PresentationFragmentPresenterImp(provideMainActivity());
}
}
我的成分:
@Component (modules = Modul.class )
public interface Compoment {
void injectPresentationFragmentPresenter();
}
与图形
public class App extends Application {
private Compoment mCompoment;
@Override
public void onCreate() {
super.onCreate();
setUpGraph();
}
private void setUpGraph() {
mCompoment = DaggerCompoment.builder()
.modul(new Modul(this))
.build();
}
public Compoment getCompoment(){
return mCompoment;
}
}
最后是我的主要活动
private ActivityMainBinding mActivityMainBinding ;
@Inject PresentationFragmentPresenter mView;
private Toolbar mToolbar;
@Override
protected void bindView(int layoutResource) {
mView = new PresentationFragmentPresenterImp(this);
mActivityMainBinding = DataBindingUtil.setContentView(this,layoutResource);
}
@Override
public int getLayoutResource() {
return R.layout.activity_main;
}
我做错了什么?您知道Dagger和数据绑定之间是否存在不兼容吗?组件有两种提供依赖关系的方法: 返回注入或提供类型的供应方法 下面是一个供应方法的示例。请注意,它是一个只返回依赖项的方法,在本例中是一个
OKHttpClient
OkHttpClient httpClient();
将依赖项注入特定类型的成员注入方法
下面是一个成员注入方法的示例。请注意,它只接受一个参数,即将与其依赖项一起注入的类型(在本例中为MainActivity
:
void inject(MainActivity activity);
有关组件的更多信息,请访问
您的问题是void injectPresentationFragmentPresenter();
两者都不是。它不返回任何内容,因此它不是一个provision方法。它也不带参数,因此它不能是一个成员注入方法。根据该方法的命名和您文章的其余部分,我猜您希望这样定义该方法:
void injectPresentationFragmentPresenter(PresentationFragmentPresenter presenter);
组件有两种提供依赖关系的方式: 返回注入或提供类型的供应方法 下面是一个provision方法的示例。请注意,它是一个只返回依赖项的方法,在本例中为
OKHttpClient
OkHttpClient httpClient();
将依赖项注入特定类型的成员注入方法
这里是一个成员注入方法的示例。请注意,它只接受一个参数,即将与其依赖项一起注入的类型(在本例中为MainActivity
:
void inject(MainActivity activity);
有关组件的更多信息,请访问
您的问题是void injectPresentationFragmentPresenter();
两者都不是。它不返回任何内容,因此它不是一个provision方法。它也不带参数,因此它不能是一个成员注入方法。根据该方法的命名和您文章的其余部分,我猜您希望这样定义该方法:
void injectPresentationFragmentPresenter(PresentationFragmentPresenter presenter);