Depuis la console Google Play, Java.lang.RuntimeException
se produit sans "causée par:"
Le journal ci-dessous est copié à partir du journal de plantage de la console Google Play.
C'est pour: Android 8.0, Android 8.1, Android 7.0, Android 7.1
Java.lang.RuntimeException:
at Android.app.ActivityThread.performLaunchActivity (ActivityThread.Java:2955)
at Android.app.ActivityThread.handleLaunchActivity (ActivityThread.Java:3030)
at Android.app.ActivityThread.-wrap11 (Unknown Source)
at Android.app.ActivityThread$H.handleMessage (ActivityThread.Java:1696)
at Android.os.Handler.dispatchMessage (Handler.Java:105)
at Android.os.Looper.loop (Looper.Java:164)
at Android.app.ActivityThread.main (ActivityThread.Java:6938)
at Java.lang.reflect.Method.invoke (Method.Java)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.Java:327)
at com.Android.internal.os.ZygoteInit.main (ZygoteInit.Java:1374)
S'il vous plaît, aidez-moi à ce sujet!
ActivityThread.Java
Indique que c'est pdatePendingConfiguration () ou registerOnActivityPausedListener () , donc il échoue avec .onPause()
ou il ne parvient pas à appeler le super()
avec les arguments corrects - ou quelque chose ne va pas avec l'application de Configuration
.
Je serais heureux d'expliquer comment résoudre le problème, mais la question n'a pas le code qui lève l'exception. La meilleure façon de résoudre ce problème pourrait être d'utiliser quelque chose de similaire Firebase Crashlytics , afin que l'on puisse voir d'où cela vient exactement et quels appareils sont affectés (au cas où cela devrait être spécifique). Je soupçonne presque que cela pourrait être causé par le démarrage d'un Activity
avec le Context
de l'application, sans définir l'indicateur Intent.FLAG_ACTIVITY_NEW_TASK
(Voir: cette réponse =).
De l'analyse du journal, on peut faire l'hypothèse suivante,
L'exception est levée dans l'une des bibliothèques externes utilisées dans le projet
Explication: Fondamentalement, l'exception est levée par ActivityThread.Java
, Plus précisément, la méthode performLaunchActivity()
à la ligne 2955
A levé l'exception. Comme la trace de la pile n'incluait aucun des internes de votre application class
, nous pouvons supposer que l'exception est levée dans un external class
fourni avec une bibliothèque que vous utilisez dans votre projet.
Si tel est le cas, les solutions de contournement suivantes peuvent être effectuées pour résoudre ce problème -
Examinez le suivi des problèmes des bibliothèques pour ce problème. Par exemple, la bibliothèque Android-Permission a un problème fermé ayant exactement le même journal.
Si votre projet est réactif natif , il y a une longue discussion à ce sujet ici
Suggestion : Je veux ajouter quelques lignes supplémentaires avec la suggestion de @Martin Zeitler d'utiliser Crashlytics .
Je vous recommande de personnaliser vos rapports de plantage Firebase Crashlytics . Parce que, parfois, seule la trace de pile n'est pas suffisante pour reproduire le crash.
En utilisant la fonction de personnalisation, vous pourrez obtenir,
Identité de l'utilisateur
État de l'application
Les événements qui ont eu lieu avant le crash
Ce qui vous aidera sûrement à régénérer le crash et à le réparer.
Cet accident pourrait se produire à partir de n'importe quoi. J'ai eu le même problème et la cause principale était un IllegalArgumentException
lancé par un Comparator
incorrectement implémenté dans un Fragment#onViewCreated
Surchargé. Le fragment lui-même a été ajouté pendant AppCompatActivity#onCreate
Via FragmentManager
.
2020-01-03 15:38:33.001 7860-7860/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.app, PID: 7860
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/MyActivity}: Android.view.InflateException: Binary XML file line #9 in com.example.app:layout/my_activity: Binary XML file line #9 in com.example.app:layout/my_activity: Error inflating class fragment
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:3270)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3409)
at Android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.Java:83)
at Android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.Java:135)
at Android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.Java:95)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:2016)
at Android.os.Handler.dispatchMessage(Handler.Java:107)
at Android.os.Looper.loop(Looper.Java:214)
at Android.app.ActivityThread.main(ActivityThread.Java:7356)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.Java:492)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:930)
Caused by: Android.view.InflateException: Binary XML file line #9 in com.example.app:layout/my_activity: Binary XML file line #9 in com.example.app:layout/my_activity: Error inflating class fragment
Caused by: Android.view.InflateException: Binary XML file line #9 in com.example.app:layout/my_activity: Error inflating class fragment
Caused by: Java.lang.IllegalArgumentException: Comparison method violates its general contract!
at Java.util.TimSort.mergeLo(TimSort.Java:777)
at Java.util.TimSort.mergeAt(TimSort.Java:514)
at Java.util.TimSort.mergeCollapse(TimSort.Java:441)
at Java.util.TimSort.sort(TimSort.Java:245)
at Java.util.Arrays.sort(Arrays.Java:1492)
at Java.util.ArrayList.sort(ArrayList.Java:1470)
at Java.util.Collections.sort(Collections.Java:206)
at com.example.app.MyFragment.onViewCreated(MyFragment.Java:188)
at androidx.fragment.app.FragmentManagerImpl.ensureInflatedFragmentView(FragmentManagerImpl.Java:1144)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.Java:851)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.Java:1133)
at androidx.fragment.app.FragmentManagerImpl.addFragment(FragmentManagerImpl.Java:1393)
at androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManagerImpl.Java:3205)
at androidx.fragment.app.FragmentController.onCreateView(FragmentController.Java:134)
at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.Java:357)
at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.Java:336)
at Android.view.LayoutInflater.tryCreateView(LayoutInflater.Java:1069)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:997)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:961)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:1123)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:656)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:534)
2020-01-03 15:38:33.003 7860-7860/com.example.app E/AndroidRuntime: at Android.view.LayoutInflater.inflate(LayoutInflater.Java:481)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.Java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.Java:161)
Bien sûr, il est presque impossible de trouver la cause première si vous n'avez que le rapport d'erreur de la console Google Play. J'ai eu la chance d'avoir un incident client, ce qui m'a permis de savoir où chercher et comment reproduire l'accident. Vous pouvez également passer à un outil de rapport d'incident personnalisé comme HockeyApp ou Firebase pour voir l'intégralité du stacktrace.
Pour les gens qui disent:
did you resolve this issue? It's a rising crash in my app as well – Bao Le Feb 6 at 8:36
did anybody resolve this issue? – AwaisMajeed Feb 9 at 13:15
Also happening to me. =( – masterlopau Feb 26 at 1:51
do this solved? – Vengat Jul 19 at 5:55
Avez-vous [~ # ~] [~ # ~] la cause supplémentaire Journal ? Cela aiderait énormément.
Java.lang.RuntimeException:
at Android.app.ActivityThread.performLaunchActivity (ActivityThread.Java:2955)
at Android.app.ActivityThread.handleLaunchActivity (ActivityThread.Java:3030)
at Android.app.ActivityThread.-wrap11 (Unknown Source)
at Android.app.ActivityThread$H.handleMessage (ActivityThread.Java:1696)
at Android.os.Handler.dispatchMessage (Handler.Java:105)
at Android.os.Looper.loop (Looper.Java:164)
at Android.app.ActivityThread.main (ActivityThread.Java:6938)
at Java.lang.reflect.Method.invoke (Method.Java)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.Java:327)
at com.Android.internal.os.ZygoteInit.main (ZygoteInit.Java:1374)
Java.lang.RuntimeException:
at Android.app.ActivityThread.performLaunchActivity (ActivityThread.Java:2955)
at Android.app.ActivityThread.handleLaunchActivity (ActivityThread.Java:3030)
at Android.app.ActivityThread.-wrap11 (Unknown Source)
at Android.app.ActivityThread$H.handleMessage (ActivityThread.Java:1696)
at Android.os.Handler.dispatchMessage (Handler.Java:105)
at Android.os.Looper.loop (Looper.Java:164)
at Android.app.ActivityThread.main (ActivityThread.Java:6938)
at Java.lang.reflect.Method.invoke (Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.Java:327)
at com.Android.internal.os.ZygoteInit.main (ZygoteInit.Java:1374)
Cette ligne diffère:
at Java.lang.reflect.Method.invoke (Method.Java)
et:
at Java.lang.reflect.Constructor.newInstance0 (Native Method)
Caused by: Android.support.v4.app.i$b:
at Android.support.v4.app.i.instantiate (Fragment.Java:386)
at Android.support.v4.app.k.a (FragmentContainer.Java:33)
at Android.support.v4.app.s.a (FragmentState.Java:79)
at Android.support.v4.app.o.a (FragmentManager.Java:3080)
at Android.support.v4.app.l.a (FragmentController.Java:152)
at Android.support.v4.app.j.onCreate (FragmentActivity.Java:330)
at Host.exp.exponent.experience.f.onCreate (ReactNativeActivity.Java:140)
at Host.exp.exponent.experience.a.onCreate (BaseExperienceActivity.Java:79)
at Host.exp.exponent.experience.ExperienceActivity.onCreate (ExperienceActivity.Java:160)
at Host.exp.exponent.experience.ShellAppActivity.onCreate (ShellAppActivity.Java:22)
at Android.app.Activity.performCreate (Activity.Java:7174)
at Android.app.Instrumentation.callActivityOnCreate (Instrumentation.Java:1220)
at Android.app.ActivityThread.performLaunchActivity (ActivityThread.Java:2908)
Caused by: Java.lang.reflect.InvocationTargetException:
at Java.lang.reflect.Constructor.newInstance0 (Native Method)
at Java.lang.reflect.Constructor.newInstance (Constructor.Java:334)
at Android.support.v4.app.i.instantiate (Fragment.Java:364)
Caused by: Java.lang.IllegalStateException:
at abi30_0_0.Host.exp.exponent.modules.api.screens.Screen$ScreenFragment.<init> (Screen.Java:19)
[~ # ~] note [~ # ~] le at Android.support.v4.app
lignes.
Voir L'application autonome Android se bloque aléatoirement à l'ouverture de l'application
(i) Ce problème a une multitude de causes provenant de ma recherche sur Internet. Une cause courante semble être l'utilisation de Android.support class packages
, Ou avoir un *Compat suffix
. Vérifiez vos fichiers build.gradle
Pour Android.support.v4
Etc ...
(ii) Parce que parfois cela ne se produit pas dans les tests, seul le déploiement, je suppose que Android.support.v4
etc ... utilise une bibliothèque de périphériques problématique sur certains périphériques ou API.
Remarque: Avec la sortie de
Android 9.0 (API level 28)
il y a une nouvelle version de la bibliothèque de support appelée AndroidX qui fait partie de Jetpack. La bibliothèqueAndroidX
contient la bibliothèque de support existante et inclut également les derniers composantsJetpack
.Vous pouvez continuer à utiliser la bibliothèque de support. Les artefacts historiques (ceux versionnés
27
Et versions antérieures et emballés sousAndroid.support.*
) Resteront disponibles surGoogle Maven
. Cependant, tout nouveau développement de bibliothèque se produira dans la bibliothèqueAndroidX
.Nous vous recommandons d'utiliser les bibliothèques AndroidX dans tous les nouveaux projets. Vous devez également envisager de migrer les projets existants vers
AndroidX
également. Configuration de la bibliothèque de supportLes bibliothèques de support sont désormais disponibles via le référentiel
Google's Maven
. Nous ne prenons plus en charge le téléchargement des bibliothèques via leSDK Manager
, Et cette fonctionnalité sera bientôt supprimée ..Remarque: Après avoir inclus la bibliothèque de support dans votre projet d'application, nous vous recommandons fortement de réduire , de masquer et optimisez votre application pour la sortie. En plus de protéger votre code source avec l'obscurcissement, la réduction supprime les classes inutilisées de toutes les bibliothèques que vous incluez dans votre application, ce qui maintient la taille de téléchargement de votre application aussi petite que possible.
Remarque: Si vous incluez plusieurs bibliothèques de prise en charge, la version minimale du SDK doit être la version la plus élevée requise par l'une des bibliothèques spécifiées. Par exemple, si votre application comprend à la fois la bibliothèque de support
v14
Preference
et la bibliothèquev17
Leanback
, votre version minimale du SDK doit être17
ou plus.
Voir également:
Packages de bibliothèque de support
Il est lié aux écrans natifs réactifs et ils ont une solution de contournement pour ce problème, veuillez consulter:
Android se bloque de façon non déterministe lors de la restauration à partir de l'arrière-plan - veedeo.