今天剛開始使用Dagger 2,對於我需要如何設置所有東西,我有點困惑。Android Dagger 2 POJO字段注入null
我想注入一個POJO,但它總是空的。 首先,一些代碼:
App.java
private AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
appComponent = DaggerAppComponent
.builder()
.appModule(new AppModule(this))
.build();
}
public AppComponent component() {
return appComponent;
}
AppModule.java
@Module
public class AppModule {
private Application app;
public AppModule(Application app) {
this.app = app;
}
@Provides @Singleton
public Application application() {
return app;
}
}
AppComponent.java
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(App application);
Application application();
}
NetworkingManager.java
@Singleton
public class NetworkingManager {
private Context ctx;
@Inject
public NetworkingManager(Context context) {
this.ctx = context;
}
}
NetModule.java
@Module
public class NetModule {
@Provides @Singleton
public NetworkingManager provideNetworkingManager(Application application) {
return new NetworkingManager(application);
}
}
NetComponent.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%肯定我有東西安裝錯誤,但我一直無法弄清楚什麼。
看來你有點混亂。你的目標是什麼?你想在哪裏使用'NetworkingManager'? – Emmanuel
NetworkManager目前是單身人士。它處理所有的異步網絡。它被用在各地。我的目標是消除單身人士並切換到DI,並讓班級成爲可測試的。 –