首页 > 解决方案 > Dagger/MissingBinding:如果没有 @Inject 构造函数或 @Provides-annotated 方法,则无法提供 android.app.Application

问题描述

我在android中使用匕首。在我的模块中,我有一个具有应用程序依赖项的方法。下面的代码:

@Module
public class NetworkModule {

    @Provides
    public Drawable provideAppDrawable(Application application) {
        return ContextCompat.getDrawable(application, R.drawable.logo);
    }
}

但是当我编译时,我在标题中得到了上面的错误。我在这里遗漏了什么?

应用组件接口:

@Component(modules = {NetworkModule.class})
public interface AppComponent {

    void inject(AuthActivity authActivity);
}

活动:

public class AuthActivity extends AppCompatActivity {

    private static final String TAG = "AuthActivity";

    @Inject
    Drawable logo;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        AppComponent appComponent  = DaggerAppComponent.create();
        appComponent.inject(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_auth);
    }
}

标签: androiddagger-2

解决方案


推荐阅读