空指针错误。在一个空对象引用上(io.reactivex.Scheduler)。

3

这是我的日志信息。当我点击特定的选项卡时,我的应用程序会崩溃。

java.lang.NullPointerException: Attempt to invoke virtual method 'io.reactivex.Flowable io.reactivex.Flowable.observeOn(io.reactivex.Scheduler)' on a null object reference
    at com.example.haji.Fragment.RecentFragment.loadRecents(RecentFragment.java:93)
    at com.example.haji.Fragment.RecentFragment.onCreateView(RecentFragment.java:86)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)

当我调用loadRecents时,它给了我错误。请帮忙。
private void loadRecents() {
    Disposable disposable = recentsRepository.getAllRecents().observeOn(AndroidSchedulers
        .mainThread()).subscribeOn(Schedulers.io()).subscribe(new Consumer <List <Recents>>() {
        @Override
        public void accept(List <Recents> recents) throws Exception {
            onGetAllRecentsSuccess(recents);
        }
    }, new Consumer <Throwable>() {
        @Override
        public void accept(Throwable throwable) throws Exception {
            Log.d("Error",throwable.getMessage());
        }
    });
    compositeDisposable.add(disposable);
}
3个回答

5
您的方法recentsRepository.getAllRecents()返回null而不是Flowable<List <Recents>>

在您的 recentsRepository.getAllRecents() 方法中(仅用于测试目的),返回 Flowable.just(new ArrayList<>())。之后,应用程序崩溃问题应该得到解决。您只需要正确实现 recentsRepository.getAllRecents() 方法即可。 - ConstOrVar
非常感谢您的帮助,它真的很有用。 - Hamza Siddiqui
不用谢。如果有帮助,请标记为答案,以帮助其他人尽快找到解决方案。 - ConstOrVar

0
将此行添加到 Biuld.gradle 依赖项中。
dependencies {
     //other code...
     implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
}

请检查导入io.reactivex.android.schedulers包中的AndroidSchedulers。 - Radesh

0

错误 - 空对象引用

可能是因为您尚未初始化

 compositeDisposable = new CompositeDisposable();

Databasename databasename= Databasename.getInstance(this);


recentsRepository=RecentsRepository.getInstance(RecentsDataSource.getInstance(mainDatabase.recentsDAO()));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接