エラーログです。FATAL EXCEPTION: main プロセス: com.xxxxxxx.android, PID: 1427
2022-03-17 03:26:20
Androidアプリが切断され、ネットワークリクエストにOKHTTP+Retrofit+RxJavaを使用、アプリがちらつく。
2021-12-09 17:17:53.493 1427-1427/com.xxx.android W/System.err: io.reactivex.exceptions.OnErrorNotImplementedException: Unable to resolve host "xxx-api.xxx.com": No address associated with hostname
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer. accept(Functions.java:704)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer. accept(Functions.java:701)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.internal.observers.LambdaObserver.onError( LambdaObserver.java:74)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.internal.operators.observable.ObservableObserveOn$ ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.internal.operators.observable.ObservableObserveOn$ ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.internal.operators.observable.ObservableObserveOn$ ObserveOnObserver.run(ObservableObserveOn.java:252)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable. run(HandlerScheduler.java:109)
2021-12-09 17:17:53.494 1427-1427/com.xxx.android W/System.err: at android.os.Handler.handleCallback(Handler.java:883)
2021-12-09 17:17:53.901 1427-1427/com.xxx.android E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxx.android, PID: 142
2021-12-09 17:17:53.940 1427-1427/com.xxx.android I/Process: Sending signal. pid: 1427 sig: 9
問題:Observableは、ネットワーク・リクエストに失敗した場合に表示する例外を持っていますが、これは別の"Consumer<Throwable"を実装することによっても取得することができます。
ModelService.requestXXX(x)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer
() {
@Override
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {
Log.i("PSF", "XXX-Observable-onSubscribe");
}
@Override
public void onNext(@io.reactivex.annotations.NonNull ResponseModel model) {
Log.i("PSF", "XXX-Observable-onNext");
xxxxxx(model);
}
@Override
public void onError(@io.reactivex.annotations.NonNull Throwable e) {
Log.i("PSF", "XXX-Observable-onError");
}
@Override
public void onComplete() {
Log.i("PSF", "XXX-Observable-onComplete");
}
});
この壊れたコードは、切断された場合に例外を投げるので、以下のように修正しました。
Disposable dis = ModelService.requestXXX()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer
() {
@Override
public void accept(ResponseModel model) throws Exception {
Log.i("PSF", "XXX-Observable-accept");
xxxxxx(model);
}
}, new Consumer
() {
@Override
public void accept(Throwable throwable) throws Exception {
Log.i("PSF", "XXX-Observable-onError" + throwable.toString());
}
});
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例