127 votes

Pourquoi j'obtiens l'erreur "Le canal est irrécupérable et sera détruit !

Lorsque j'essaie de lancer mon Activité de AndEngine j'obtiens cette erreur :

ERROR/InputDispatcher(21374): channel '4122e148 my.package.AcGame (server)' ~ Channel is unrecoverably broken and will be disposed!

L'application ne se plante pas, mais l'écran est noir et l'appareil ne réagit pas aux boutons "retour" ou "accueil".

Quelqu'un sait-il quel est le problème ?

0 votes

On ne peut pas deviner grand-chose à partir des informations que vous avez données (veuillez en ajouter d'autres). Mais ceci pourrait vous aider : stackoverflow.com/questions/5551929/inputdispatcher-error Vérifiez les fuites de mémoire.

12 votes

Cette erreur apparaît après le plantage d'une application (ou son arrêt forcé). La partie d'Android qui transmet les événements de saisie (pressions sur l'écran tactile, etc.) à votre application a remarqué que sa cible n'est plus là. Recherchez une erreur qui se produit avant celle-ci.

1 votes

@uncle Lem , Bro même je suis coincé dans le même problème . Je ne peux effectuer aucune opération tant que je n'ai pas redémarré le téléphone. avez-vous trouvé une solution ? Je suis fatigué de ce problème.

46voto

Louis Morda Points 366

L'une des raisons les plus courantes pour lesquelles je vois cette erreur est que j'essaie d'afficher une boîte de dialogue d'alerte ou de progression dans une activité qui n'est pas au premier plan. Par exemple, lorsqu'un thread d'arrière-plan qui affiche une boîte de dialogue s'exécute dans une activité en pause.

2 votes

Définissez la boîte de dialogue sur null dans onPause, et vérifiez null avant d'afficher la boîte de dialogue dans le fil d'arrière-plan.

0 votes

Dans mon cas, j'ai obtenu l'erreur parce que j'ai commenté les méthodes onResume(), onStart, onStop, onPause, onDestroy et onLowMemory. Merci @LouMorda pour cette astuce !

15voto

Roman Black Points 2174

Je pense que vous avez des fuites de mémoire quelque part. Vous pouvez trouver des astuces pour éviter les fuites de mémoire aquí . Vous pouvez également vous renseigner sur les outils permettant de le localiser. aquí .

5voto

ishitcno1 Points 95

J'ai obtenu une erreur similaire (mon application se plante) après avoir renommé quelque chose dans le fichier strings.xml et a oublié de modifier d'autres fichiers (un fichier de ressources xml de préférence et du code java).

L'IDE (Android studio) n'a pas montré d'erreurs. Mais, après avoir réparé mes fichiers xml et mon code java, l'application a fonctionné correctement. Donc, peut-être qu'il y a quelques petites erreurs dans vos fichiers xml ou vos constantes.

0 votes

Trop généralisé pour être compris cependant :)

1 votes

J'ai invalidé les données et redémarré l'IDE et le problème a été résolu. Peut-être parce que l'erreur était due à ce que vous avez mentionné.

0 votes

@AleksadnreBibilashvili Dude...You Saved my day..i invalidated and restart the ide,, then it revealed the possible crash....

2voto

amadosi Points 1

J'ai eu le même problème mais le mien était dû à une fuite de mémoire de la base de données Android. J'ai sauté un curseur. L'appareil s'est donc écrasé afin de réparer cette fuite de mémoire. Si vous travaillez avec la base de données Android, vérifiez si vous avez sauté un curseur lors de la récupération de la base de données.

0 votes

Je n'ai pas utilisé de base de données dans cette application. Il me semble qu'il y a beaucoup d'options qui peuvent causer cette erreur.

1voto

mallik Points 130

Cela s'est produit pour moi aussi pendant l'exécution d'un jeu utilisant and-engine. Le problème a été résolu après avoir ajouté le code ci-dessous à mon manifest.xml. Ce code doit être ajouté à votre activité principale.

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|mcc|mnc"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X