Chỉ mới bắt đầu sử dụng Dagger 2 hôm nay và tôi hơi bối rối về cách chính xác tôi cần thiết lập mọi thứ.Android Dagger 2 POJO field Tiêm null
Tôi đang cố gắng tiêm POJO nhưng nó luôn là rỗng. Thứ nhất, một số mã:
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();
}
Tôi đã dành rất nhiều thời gian tìm kiếm thông qua rất nhiều hướng dẫn, SO các câu hỏi, và các ví dụ, nhưng tôi đã không thể tìm ra những gì tôi đang làm sai.
Tôi chắc chắn 99% tôi có thiết lập gì đó sai, nhưng tôi đã không thể tìm ra điều gì.
Dường như bạn có chút nhầm lẫn. Mục tiêu của bạn là gì? Bạn đang cố gắng sử dụng 'NetworkingManager' ở đâu? – Emmanuel
NetworkManager hiện là một singleton. Nó xử lý tất cả các mạng không đồng bộ. Nó được sử dụng khắp nơi. Mục tiêu của tôi là loại bỏ singleton và chuyển sang DI, cũng như làm cho lớp có thể kiểm chứng được. –