我刚开始使用匕首2.我已经为应用程序级依赖项创建了依赖关系图。现在我想创建特定活动所需的依赖关系所以我为活动创建了另一个Component
,然后我为该组件创建了模块和作用域。现在,当我完成编写所有的代码,我生成的项目,但我得到编译器错误,我无法解决。匕首2,如何在依赖项中添加接口
这是我在做什么。
@FeedsCatalogActivityScope
@Component(modules = FeedsCatalogActivityModule.class, dependencies = FeederApplicationComponent.class)
//My activity requires Catalog adapter so i am creating dependency for that
public interface FeedsCatalogActivityComponent {
CatalogAdapter getCatalogAdapter();
}
这里是模块
@Module
public class FeedsCatalogActivityModule {
private final SelectedInterfaceListener selectedInterfaceListener;
public FeedsCatalogActivityModule(SelectedInterfaceListener selectedInterfaceListener) {
this.selectedInterfaceListener = selectedInterfaceListener;
}
@Provides
@FeedsCatalogActivityScope
public CatalogAdapter catalogAdapter(Picasso picasso, SelectedInterfaceListener mSelectesInterfaceListener) {
return new CatalogAdapter(picasso, mSelectesInterfaceListener);
}
}
这里是范围
@Scope
public @interface FeedsCatalogActivityScope {
}
所以,现在当我建立我得到这个错误
/Users/Zeeshan/Desktop/personal/Feeder/app/src/main/java/io/droidninja/feeder/FeederApplication.java Error:(10, 31) error: cannot find symbol class DaggerFeederApplicationComponent /Users/Zeeshan/Desktop/personal/Feeder/app/src/main/java/io/droidninja/feeder/ui/activities/FeedsCatalogActivityComponent.java Error:(13, 20) error: io.droidninja.feeder.ui.adapters.SelectedInterfaceListener cannot be provided without an @Provides-annotated method. io.droidninja.feeder.ui.adapters.SelectedInterfaceListener is injected at io.droidninja.feeder.ui.activities.FeedsCatalogActivityModule.catalogAdapter(…, mSelectesInterfaceListener) io.droidninja.feeder.ui.adapters.CatalogAdapter is provided at io.droidninja.feeder.ui.activities.FeedsCatalogActivityComponent.getCatalogAdapter() Error:Execution failed for task ':app:compileDebugJavaWithJavac'. Compilation failed; see the compiler error output for details.
什么,我的理解是我在有问题。我应该如何提供SelectedInterfaceListener
?它是一个接口。
P.S我是新来的匕首我刚开始使用它。
活动是实现该接口。我应该怎么做呢? –
https://guides.codepath.com/android/Dependency-Injection-with-Dagger-2#dependent-components-vs-subcomponents – TmTron
@ZeeshanShabbir不知道为什么你希望它通过一个Activity来实现,无论如何检查我的在构建组件时回答并传递'this'作为模块构造函数中的引用。 – Distjoy