EXCEPTION FATALE: Firebase-Messaging-Intent-Handle - java.lang.NoClassDefFoundError
Je n'utilise aucun code / bibliothèques Firebase ou Youtube dans mon projet. Pourtant, récemment, dans les rapports de pré-version Android, je vois des plantages avec ceci:
FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
Process: com.google.android.youtube, PID: 26820
java.lang.NoClassDefFoundError: aewt
at aewu.b(PG:1)
at duc.a(PG:230)
at duc.get(PG:247)
at aevw.b(PG:1)
at dud.al(PG:5)
at dud.aw(PG:4)
at dud.bg(PG:8)
at duc.a(PG:232)
at duc.get(PG:247)
at afke.a(PG:1)
at aeri.b(PG:1)
at dud.fv(PG:4)
at duc.c(PG:269)
at duc.get(PG:247)
at amfk.a(PG:1)
at eiu.K(PG:5)
at dud.fV(PG:7)
at duc.d(PG:334)
at duc.get(PG:247)
at com.google.android.apps.youtube.app.common.notification.FcmMessageListenerService.b(PG:1)
at com.google.firebase.messaging.FirebaseMessagingService.g(PG:53)
at avgp.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at usj.run(PG:2)
at java.lang.Thread.run(Thread.java:831)
Voici un autre journal avec plus de détails, mais des problèmes différents:
Process: com.google.android.youtube, PID: 16751
java.lang.NoClassDefFoundError: aewt
[redacted]
at com.google.android.apps.youtube.app.common.notification.FcmMessageListenerService.b(PG:1)
at com.google.firebase.messaging.FirebaseMessagingService.g(PG:53)
at avgp.run(Unknown Source:7)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at usj.run(PG:2)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ExceptionInInitializerError
[redacted]
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5767)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1680)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
Caused by: dkp: libelements.so
at dks.c(PG:52)
...
Des idées s'il vous plaît?
Je n'ai aucune idée de ce que signifie dkp: libelements.so". Google ne montre aucun résultat.
J'ai téléchargé une version sur Google Play avec minifyEnabledet les shrinkResourcesdeux réglés sur false, mais les erreurs Firebase / Youtube dans les rapports de pré-lancement sont toujours obscurcies. Et cela n'affecte que deux appareils: Nokia 1 et Huawei P8 青春 版.
Lorsque j'ai téléchargé le fichier non masqué sur Google Play, j'ai été averti que mon application contenait du code masqué et que je devais télécharger un fichier de carte. Je n'ai aucune idée de la façon dont le code Firebase / Youtube est dans mon binaire, et en parcourant mes commits, il n'y a eu aucune mise à jour de l'une de mes bibliothèques au moment où les erreurs ont commencé à apparaître.
MISE À JOUR:
Ce problème a été ajouté à ce rapport de bogue:
https://issuetracker.google.com/issues/160907013
Réponses
Solution: ignorer
Tous les signes indiquent qu'il s'agit d'un problème avec les rapports de pré-lancement de Google Play et non avec notre code.
Edit: les équipes produit et d'ingénierie de Google https://issuetracker.google.com/issues/160907013#comment25du problème. Mais il semble qu'ils pourraient avoir besoin de quelques personnes supplémentaires pour leur donner une idée de l'ampleur du problème. Envisagez peut-être de publier le rapport de bogue.
J'ai également le même problème en essayant de publier une nouvelle version de mon application également développée en java avec android studio, lors du pré-lancement, une erreur est affichée pour l'appareil Huawei P8 青春 with avec Android 5.0 (SDK 21). L'erreur est la suivante:
FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
Process: com.google.android.youtube, PID: 27648
java.lang.NoClassDefFoundError: aewt
at aewu.b(PG:1)
at duc.a(PG:230)
at duc.get(PG:247)
at aevw.b(PG:1)
at dud.al(PG:5)
at dud.aw(PG:4)
at dud.bg(PG:8)
at duc.a(PG:232)
at duc.get(PG:247)
at afke.a(PG:1)
at aeri.b(PG:1)
at dud.fv(PG:4)
at duc.c(PG:269)
at duc.get(PG:247)
at amfk.a(PG:1)
at eiu.K(PG:5)
at dud.fV(PG:7)
at duc.d(PG:334)
at duc.get(PG:247)
at com.google.android.apps.youtube.app.common.notification.FcmMessageListenerService.b(PG:1)
at com.google.firebase.messaging.FirebaseMessagingService.g(PG:53)
at avgp.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at usj.run(PG:2)
at java.lang.Thread.run(Thread.java:831)
Mais lors du téléchargement du journal complet, je constate que l'erreur apparaît avant le démarrage de l'application:
11-08 06:57:29.438: E/AndroidRuntime(27648): FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
11-08 06:57:29.438: E/AndroidRuntime(27648): Process: com.google.android.youtube, PID: 27648
11-08 06:57:29.438: E/AndroidRuntime(27648): java.lang.NoClassDefFoundError: aewt
...
Mais dans la vidéo que google fait pour le test, l'application n'échoue jamais et vous pouvez clairement voir qu'elle commence à 06:57:07, donc les heures ne correspondent pas.
1-08 06:59:07.758: W/PGApi_client(3556): recv actoionId = 10000, action = com.huawei.pgmng.PGAction@13714f2a actionId =10000 pkg =com.MYAPP.MYAPP extend1 =0 extend2 = flag =3 type =1
11-08 06:59:07.758: W/PGMiddleWare jhh(3556): in handleAction method, action = 10000
11-08 06:59:07.758: W/PGMiddleWare jhh(3556): in handleAction, invoke client = com.huawei.pgmng.middleware.AudioEffectLowPowerImpl@2725ca70, action = com.huawei.pgmng.PGAction@13714f2a actionId =10000 pkg =com.MYAPP.MYAPP extend1 =0 extend2 = flag =3 type =1
11-08 06:59:07.758: I/AudioEffectLowPowerImpl jhh(3556): jhh handle default mActionId = 10000, action = com.huawei.pgmng.PGAction@13714f2a actionId =10000 pkg =com.MYAPP.MYAPP extend1 =0 extend2 = flag =3 type =1
11-08 06:59:07.758: W/AudioEffectLowPowerImpl jhh(3556): enter into DEFAULT_FRONT Scene.
Vérifiez le registre en détail, si c'est le même cas, nous ne pouvons qu'attendre que Google corrige le problème sur ses appareils de test ou publie l'application et qu'un utilisateur avec cet appareil ait la même erreur.
Pour moi, cela se produisait parce que j'avais supprimé une classe, mais j'avais oublié de supprimer une référence à celle-ci dans AndroidManifest.xml.
Parcourez votre AndroidManifest.xml et assurez-vous qu'il ne fait référence à aucune classe inexistante, elles s'afficheront probablement en rouge, mais étonnamment, le projet sera toujours construit.
Le nom est probablement affiché comme nouveau en raison de la minification / obscurcissement de la construction. Je n'ai absolument aucune idée de la raison pour laquelle le message d'erreur fait référence à YouTube, c'est le cas pour moi aussi lorsque je n'utilise pas YouTube dans l'application.
Le journal des plantages dans le rapport de pré-version était totalement inutile, mais un journal des plantages dans Firebase Crashlytics a révélé la source du problème.
J'attends toujours un rapport de pré-publication pour confirmer sans aucun doute, que j'aurai plus tard dans la journée, mais cela semble très probable sur la base du rapport crashlytics de firebase et des circonstances.
Edit: Mon rapport de pré-version n'affiche plus cette erreur et passe totalement après la suppression de la référence suspendue du fichier androidmanifest.xml
J'ai eu ce problème après la mise à jour vers le dernier SDK de Firebase. Le problème était que je n'avais pas supprimé la référence d'un service qui avait été précédemment supprimé de l'application.
- vérifiez votre manifeste et supprimez les références inutiles qui seront affichées en rouge.
En faisant cela, j'ai pu supprimer cette erreur du rapport de pré-lancement.