今天刚开始使用 Dagger 2,我对如何设置所有内容感到有些困惑。
我正在尝试注入 POJO,但它始终为空。首先,一些代码:
应用程序.java
private AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
appComponent = DaggerAppComponent
.builder()
.appModule(new AppModule(this))
.build();
}
public AppComponent component() {
return appComponent;
}
应用模块.java
@Module
public class AppModule {
private Application app;
public AppModule(Application app) {
this.app = app;
}
@Provides @Singleton
public Application application() {
return app;
}
}
应用组件.java
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(App application);
Application application();
}
网络管理器.java
@Singleton
public class NetworkingManager {
private Context ctx;
@Inject
public NetworkingManager(Context context) {
this.ctx = context;
}
}
网络模块.java
@Module
public class NetModule {
@Provides @Singleton
public NetworkingManager provideNetworkingManager(Application application) {
return new NetworkingManager(application);
}
}
网络组件.java
@Singleton
@Component(modules = {NetModule.class},
dependencies = {AppModule.class})
public interface NetComponent {
void inject(NetworkingManager networkingManager);
}
SomeClass.java
@Inject
NetworkingManager networkingManager;
public void doSomethingWithNetworkManager() {
networkManager.doStuff();
}
我花了很多时间查看大量教程、SO 问题和示例,但我无法弄清楚我做错了什么。
我 99% 确定我的设置有问题,但我无法弄清楚是什么。