Sehen Sie die folgenden Stapel auf alte Versionen von Android (4.3 und früher):IncompatibleClassChangeError von okhttp3.internal.Util.closeQuietly()
Caused by: java.lang.IncompatibleClassChangeError: interface not implemented
at okhttp3.internal.Util.closeQuietly(Util.java:100)
at okhttp3.internal.connection.StreamAllocation.streamFailed(StreamAllocation.java:332)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.recover(RetryAndFollowUpInterceptor.java:209)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:132)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:212)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
at okhttp3.RealCall.execute(RealCall.java:63)
Dies scheint eine Inkompatibilität zwischen okhttp und Java 6 vorzuschlagen, wo java.net.Socket
implementiert Closeable
nicht.
Und das Problem scheint hauptsächlich als Folge eines fehlgeschlagenen Streams auftreten. Es war schwer zu reproduzieren, bis wir den Aufruf diese PHP-Seite (entlehnt aus https://stackoverflow.com/a/141026/315702) gestartet, der einen Stromausfall auf der Client-Seite zwingt:
<?php
ob_end_clean();
header("Connection: close");
ignore_user_abort(true); // just to be safe
ob_start();
echo('Text the user will see');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Strange behaviour, will not work
flush(); // Unless both are called !
sleep(30);
echo('Text user will never see');
?>
FWIW, es sieht aus wie sie verzichteten '+' zum Zeitpunkt des 'r2.1.1'. BTW, schöne Analyse! – CommonsWare
Es brauchte den kollektiven IQ von mehreren Entwicklern, um auf den Grund dieses zu kommen. Und danke - ich wollte nachsehen, ob die '+' Abhängigkeit behoben wurde! – markproxy
Festgelegt hier: https://github.com/square/okhttp/pull/3125 –