Bonjour!Android: java.lang.RuntimeException causée par Handler
J'ai une application Android dans le magasin google play avec un widget qui charge des données du serveur. Dans mon Play-console je reçois l'exception suivante:
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:318)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:354)
at java.util.concurrent.FutureTask.setException (FutureTask.java:223)
at java.util.concurrent.FutureTask.run (FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
at java.lang.Thread.run (Thread.java:762)
Caused by: java.lang.RuntimeException:
at android.os.Handler.<init> (Handler.java:200)
at android.os.Handler.<init> (Handler.java:114)
at package.Widget.fehler (Widget.java:279)
at package.Widget_Server.doInBackground (Widget_Server.java:73)
at package.Widget_Server.doInBackground (Widget_Server.java:19)
at android.os.AsyncTask$2.call (AsyncTask.java:304)
at java.util.concurrent.FutureTask.run (FutureTask.java:237)
La classe java « Widget_Server.java » démarre une connexion et d'obtenir les données du serveur. "Widget.java" est la classe principale pour le widget.
Widget_Server.java, ligne 73:
finally {
try {
reader.close();
} catch(Exception ex) {
EXCEPTION (line 73) -> widget.fehler("Fehler! #2215", context);
}
}
Widget.java, ligne 279: (dans la méthode fehler(String, Context)
)
remoteViews.setTextViewText(R.id.label4, fehlerbeschreibung);
EXCEPTION (line 279) -> Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
remoteViews.setViewVisibility(R.id.loading, View. INVISIBLE);
update(context);
}
}, 1000);
Comment l'initialisation gestionnaire peut jeter un runtime_exception?
J'ai cherché longtemps mais je n'ai pas trouvé d'informations à ce sujet.
Merci pour toutes les réponses!
Voilà la solution, merci! J'appelle 'Handler handler = new Handler()' après la définition de classe en tant qu'objet global. Cela évite l'exception. – Waldi