Java 使用匕首进行注射改造时的NPE
我正在使用匕首进行DI和网络改造。 当我试图在演示者中调用改型api方法时,我捕获了NPE。 以下是网络模块:Java 使用匕首进行注射改造时的NPE,java,android,dependency-injection,retrofit2,dagger-2,Java,Android,Dependency Injection,Retrofit2,Dagger 2,我正在使用匕首进行DI和网络改造。 当我试图在演示者中调用改型api方法时,我捕获了NPE。 以下是网络模块: @Module public class NetworkModule { String baseUrl; public NetworkModule(String baseUrl) { this.baseUrl = baseUrl; } @Provides @Singleton Gson provideGson() {
@Module
public class NetworkModule {
String baseUrl;
public NetworkModule(String baseUrl) {
this.baseUrl = baseUrl;
}
@Provides
@Singleton
Gson provideGson() {
GsonBuilder gsonBuilder = new GsonBuilder();
return gsonBuilder.create();
}
@Provides
@Singleton
Retrofit provideRetrofit(Gson gson, OkHttpClient client) {
return new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl(baseUrl)
.build();
}
@Provides
@Singleton
UsersApi provideUsersApi(Retrofit retrofit){
return retrofit.create(UsersApi.class);
}
}
和应用程序组件:
@Singleton
@Component(dependencies = {}, modules = {AppModule.class, DatabaseModule.class, NetworkModule.class})
public interface AppComponent {
void inject(UsersFragmentPresenter usersFragmentPresenter);
UserDao userDao();
Retrofit retrofit();
UsersApi usersApi();
AppDatabase appDatabase();
Application application();
}
当我在这里注入api并调用api方法时,成员没有被序列化
@InjectViewState
public class UsersFragmentPresenter extends MvpPresenter<BaseFragmentView> {
@Inject
UsersApi usersApi; // is null
public UsersFragmentPresenter() {
App.getAppComponent().inject(this);
}
public void loadData(){
usersApi.getUser()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
}
@InjectViewState
公共类用户FragmentPresenter扩展MvpPresenter{
@注入
UsersApi UsersApi;//为空
公共用户FragmentPresenter(){
App.getAppComponent().inject(此);
}
公共void loadData(){
usersApi.getUser()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.签署(观察员);
}
是
应用程序
在您的AndroidManifest.xml
中吗?@Nitrodon哦,愚蠢的错误,谢谢