Java 使用匕首进行注射改造时的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() {

我正在使用匕首进行DI和网络改造。 当我试图在演示者中调用改型api方法时,我捕获了NPE。 以下是网络模块:

@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哦,愚蠢的错误,谢谢