>我有一个片段,其中我实现了一些代码:
public void onViewCreated(@androidx.annotation.NonNull View v, @Nullable Bundle savedInstanceState) {
super.onViewCreated(v, savedInstanceState);
button = v.findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Observable<String> bookObservable = getBookObservalbel();
Observer<String> bookObserver = getBookObserver();
bookObservable.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(bookObserver);
}
});
}
private Observer<String> getBookObserver() {
return new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull String s) {
Log.d(TAG, "onNext: " + s);
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
};
}
private Observable<String> getBookObservalbel() {
return Observable.just("1", "2", "3");
}
但是在运行它时,我收到此错误:-
java.lang.BootstrapMethodError: Exception from call site #1 bootstrap method
at io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.<clinit>(AndroidSchedulers.java:33)
at io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.mainThread(AndroidSchedulers.java:44)
at com.example.rxjavatut.second$1.onClick(second.java:58)
at android.view.View.performClick(View.java:6608)
at android.view.View.performClickInternal(View.java:6585)
at android.view.View.access$3100(View.java:785)
at android.view.View$PerformClick.run(View.java:25921)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
Caused by: java.lang.ClassCastException: Bootstrap method returned null
我在 rxjava 和 rxandroid 的年级中使用这些依赖项
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
implementation 'io.reactivex.rxjava3:rxjava:3.0.3'
我试图在我的主活动中在旧版本的 rxjava 和 rxandroid 中运行此代码,它运行完美。
我无法弄清楚问题出在哪里,您能否分享一些有关我可能做错了什么的信息。
RxJava3 需要 Java 8。更新您的 Java 版本:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}