小编Krz*_*cki的帖子

Dagger2问题"如果没有@ Provide-annotated方法,则无法提供".

我正在尝试用Dagger2设置一个新项目,之前我使用过Dagger2,但现在我正试图自己设置它.我从Kotlin项目中得到了一个例子,但我不能像现在在Kotlin中那样设置Java(或者我可能缺少一些东西).

它只是一个组件,单个模块和应用程序.

零件

@Singleton
@Component(modules = {MainAppModule.class})
public interface AppComponent extends AndroidInjector<App> {
@Component.Builder
abstract class Builder implements AndroidInjector.Factory<App> {

    public AppComponent create(App application) {
        seedApplication(application);
        return build();
    }

    @BindsInstance
    abstract void seedApplication(App application);

    abstract AppComponent build();
}
}
Run Code Online (Sandbox Code Playgroud)

@Module
abstract class MainAppModule {

@Binds
abstract public Application bindApplication(App application);

@ContributesAndroidInjector
abstract public MainActivity contributeActivityInjector();
}
Run Code Online (Sandbox Code Playgroud)

*申请*

public class App extends DaggerApplication {

@Override
public AndroidInjector<? extends DaggerApplication> applicationInjector() {
    return DaggerAppComponent.builder().create(this);
}
}
Run Code Online (Sandbox Code Playgroud)

在这一点上,我没有任何我调用的类,我@Inject 只是在构建时遇到错误:

 error: [dagger.android.AndroidInjector.inject(T)] …
Run Code Online (Sandbox Code Playgroud)

java android dependency-injection dagger dagger-2

7
推荐指数
1
解决办法
2224
查看次数

标签 统计

android ×1

dagger ×1

dagger-2 ×1

dependency-injection ×1

java ×1