Com.android.volley.NoConnectionError après l'application de pause

J'écris mon application avec Google Volley et Gson pour parler à un service REST avec OkHttp en tant que HTTP-Stack. Cela fonctionne bien la plupart du temps, mais lorsque je met en pause mon application et que je retourne, les requêtes HTTP ne fonctionnent pas avec cette exception:

09-08 19:29:19.611: E/ASDF(21827): com.android.volley.NoConnectionError: java.io.EOFException 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:125) 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105) 09-08 19:29:19.611: E/ASDF(21827): Caused by: java.io.EOFException 09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206) 09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:98) 09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:461) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:659) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:346) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:295) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:489) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:136) 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:109) 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93) 09-08 19:29:19.611: E/ASDF(21827): ... 1 more 

Cela se produit de façon aléatoire. Pas chaque fois que je suspends ma demande. Je n'ai vraiment aucune idée par où commencer.

  • Sens de défilement dans un OnPageChangeListener
  • Android: EditText perd du contenu en défilement dans ListView?
  • Notification envoyée à l'utilisateur à un moment précis Android
  • Erreur Android Studio 2.3 gradle
  • Les fuites de mémoire dans l'application Android
  • Service de démarrage Android NFC
  • Vue circulaire personnalisée
  • Tracer les fuites de mémoire / fenêtre dans Android?
  • Liste de tous les processus en cours d'exécution dans Android
  • Ajout de "diviseurs de section" à ma mise en page?
  • Comment passer par programme des onglets en utilisant buttonclick dans Android
  • Comment faire un dialogue personnalisé avec des coins arrondis dans Android
  • 2 Solutions collect form web for “Com.android.volley.NoConnectionError après l'application de pause”

    Il semble que ce problème soit causé par un bogue dans Android lui-même qui devrait être corrigé!? Le problème et sa correction sont décrits ici: problème d'Android 24672

    Ainsi, l'ajout de ce code à mon usine OkHttp URLConnection a corrigé le problème tout de suite:

      @Override protected HttpURLConnection createConnection(URL url) throws IOException { HttpURLConnection connection = client.open(url); // Fix for bug in Android runtime(!!!): // https://code.google.com/p/android/issues/detail?id=24672 connection.setRequestProperty("Accept-Encoding", ""); return connection; } 

    J'ai eu ce problème pendant environ une heure. Si vous essayez de vous connecter à un service de restauration de machine virtuelle, vous devez modifier le fichier hosts sur l'émulateur Android.

    J'ai été intrigué depuis si longtemps parce que j'avais déjà fait cela. Je ne pense pas qu'il garde le fichier hôte entre les redémarrages de l'émulateur. Ce qui est ennuyant, mais maintenant je (et peut-être vous) savez …

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.