J'initialise mes listes dans mon activité Oncreee () comme ci-dessous:
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); filtered.clear(); }
3 Réponses :
Si vous obtenez essayez de cette façon p > nullpointeException code> dans
onNewintent () code> méthode probablement
filtré code> objet est null.
@Override
protected void onNewIntent(Intent intent) {
//Check for null value and then proceed.
if(filtered != null)
filtered.clear();
}
Merci pour votre aide mais mon code est plus compliqué que cela. Donc, si le chèque ne convient pas.
@savepopulation Veuillez poster votre code. Nous pouvons donc vous aider là-bas.
Je ne peux pas poster de cause à la vie privée. Je suis désolé. :(
Gardez le cycle de vie à l'esprit, peut-être que vous retournez à votre activité à partir d'un point où Oncreate () n'est pas appelé (par exemple, si vous avez défini LaunleMode = SingleSk ou quelque chose dans votre manifeste). Peut-être initialiser / repeupler votre arraylist à Onresume () et également vérifier si ce n'est pas NULL, SUR CV () est appelé à votre retour lorsque vous revenez à votre activité. P>
Mon activité LaunchMode est une tâche unique. Dans quel type de situations il peut être possible une nouvelle intention est-elle appelée sans oncreate? Pouvez-vous donner un exemple? Merci.
f.-e. Si vous souhaitez passer à une autre activité et revenir à votre activité SingleSksk, onNewintent () est appelée et oncreate () n'est pas appelée
c'est correct mais oncreate sera appelé si une activité de tâche unique est détruite. Si ce n'est pas détruit, mes listes ne seront pas nulles. N'est-ce pas vrai?
Eh bien, votre arraylist ne devrait peut-être pas être nulle, mais cela est évidemment, vous devez donc fournir plus de code ou mieux faire de vous déboguer pour trouver sur quel point l'arraylist devient NULL. Que voulez-vous dire avec 'Oncreate sera appelé si une activité de tâche unique est détruite'?
Je ne peux pas attraper comment cette erreur se produit. C'est le problème. Et je reçois des journaux de tissu. Je reçois cette erreur dans la production.
L'équipe sur Open Whisper Systems a rencontré le même problème:
HTTPS: / /Github.com/whispersysystems/signal-android/issues/2971 p>
Ils pensent que c'est causé par l'appelant Android Calling Ils semblent l'avoir corrigé en vérifiant OnNewIntent () Code> Très peu après
onecreate () code>, même si vous appelez
Terminer () code> à partir de votre
Oncreate () code>. Cela provoque éventuellement des causes
NULL code> utilisés dans
OnNeWinTent () code>, puis
nullpointeException code>, car les objets n'ont pas été mis en place dans le code habituel > Oncreate () code>. Il semble s'agir d'un scénario rare ou d'une condition de course entre
oncreate () code> et
onNewintent () code>. P>
Isfinissant () Code> Dans
OnNewinTent () Code> Pour empêcher
OnNewIntent () Code> de continuer: P>
buildToolsVersion '25.0.2'
À propos de votre 10 nov. Mise à jour 2017, pourquoi supposez-vous cela? Je pense que cela peut être lié à la version AppCompat plus que la version de construction des outils 🤔, pas?
@crgarridos, via la surveillance et l'analyse de l'application, on peut voir que la mise à jour de la version de construction des outils réduit le nombre de fois que ce bogue se produit d'une grande quantité. Mais cela ne le répare pas à 100%.
Postez votre logcat si vous rencontrez un
nullpointException code>! Comme ça, je suppose que
filtré code> est null dans
onNewintent () code> ...
@savepopulation a la réponse acceptée vous a aidé de quelque manière que ce soit? J'ai un problème similaire et je ne suis pas en mesure de reproduire le problème. Ne peut voir que des grumes de tissu des crashs :(
Désolé j'ai quitté le projet que j'ai ce problème, je ne peux donc pas voir ce qui se passe avec des outils de construction 25.0.2 en production. J'ai fait quelques recherches sur cette question et, selon ce que j'ai trouvé, j'ai décidé d'accepter la réponse de @ MR-Ide.
Je pense que cela se produit lorsque vous définissez un mode de lancement -Except Standart- à votre activité et lorsque vous finissez, essayez de recommencer. C'est donc raisonnable de vérifier s'il s'agit d'une finition. J'espère que cela vous aidera.
OK merci. C'était utile.