我正在尝试在项目中实现dagger2,但遇到错误“ android.app.Application必须在没有@Inject构造函数或@Provides注释方法的情况下才能提供 ”。
这是我的代码:
App.java
package com.poppmedia.wallpaperautomaton;
import android.app.Application;
import com.poppmedia.wallpaperautomaton.di.DaggerAppComponent;
import dagger.android.AndroidInjector;
import dagger.android.DaggerApplication;
/**
* The Android {@link Application}.
*/
public class App extends DaggerApplication {
@Override
protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
return DaggerAppComponent.builder().create(this);
}
}
Run Code Online (Sandbox Code Playgroud)
di / AppModule.java
package com.poppmedia.wallpaperautomaton.di;
import android.app.Application;
import android.content.Context;
import javax.inject.Singleton;
import dagger.Binds;
import dagger.Module;
/**
* Provider application-wide dependencies.
*/
@Module
public interface AppModule {
@Binds
@Singleton
Context bindContext(Application application);
}
Run Code Online (Sandbox Code Playgroud)
di / AppComponent.java
package com.poppmedia.wallpaperautomaton.di;
import com.poppmedia.wallpaperautomaton.App;
import javax.inject.Singleton; …Run Code Online (Sandbox Code Playgroud)