FATALE AUSNAHME: Firebase-Messaging-Intent-Handle - java.lang.NoClassDefFoundError
Ich verwende in meinem Projekt keinen Firebase- oder Youtube-Code / keine Bibliotheken. Vor kurzem habe ich in Android Pre-Release-Berichten folgende Abstürze festgestellt:
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)
Hier ist ein weiteres Protokoll mit mehr Details, aber unterschiedlichen Problemen:
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)
...
Irgendwelche Ideen bitte?
Ich habe keine Ahnung, was dkp: libelements.so"ist. Googeln zeigt keine Ergebnisse.
Ich habe eine Version mit minifyEnabledund auf shrinkResourcesbeide auf Google Play hochgeladen false, aber die Firebase / Youtube-Fehler in Pre-Launch-Berichten sind immer noch verschleiert. Und es betrifft nur zwei Geräte: Nokia 1 und Huawei P8 青春 版.
Als ich die nicht verschleierte Datei zu Google Play hochlud, wurde ich gewarnt, dass meine App verschleierten Code enthält und ich eine Kartendatei hochladen sollte. Ich habe keine Ahnung, wie sich der Firebase / Youtube-Code in meiner Binärdatei befindet, und als ich meine Commits durchgesehen habe, wurden zu dem Zeitpunkt, als die Fehler angezeigt wurden, keine meiner Bibliotheken aktualisiert.
AKTUALISIEREN:
Dieses Problem wurde diesem Fehlerbericht hinzugefügt:
https://issuetracker.google.com/issues/160907013
Antworten
Lösung: ignorieren
Alle Anzeichen deuten darauf hin, dass dies ein Problem mit den Pre-Launch-Berichten von Google Play und nicht mit unserem Code ist.
Bearbeiten: Googles Produkt- und Entwicklungsteams https://issuetracker.google.com/issues/160907013#comment25des Problems. Aber es scheint, dass sie noch ein paar Leute brauchen, um sich ein Bild vom Ausmaß des Problems zu machen. Vielleicht sollten Sie einen Beitrag im Fehlerbericht veröffentlichen.
Ich habe auch das gleiche Problem, wenn ich versuche, eine neue Version meiner Anwendung zu veröffentlichen, die ebenfalls in Java mit Android Studio entwickelt wurde. Beim Start wird ein Fehler für das Huawei P8 Android 版 -Gerät mit Android 5.0 (SDK 21) angezeigt. Der Fehler ist wie folgt:
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)
Beim Herunterladen des vollständigen Protokolls stelle ich jedoch fest, dass der Fehler vor dem Start der Anwendung auftritt:
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
...
Aber in dem Video, das Google für den Test erstellt, schlägt die Anwendung nie fehl und Sie können deutlich sehen, dass sie um 06:57:07 Uhr beginnt, sodass die Zeiten nicht übereinstimmen.
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.
Überprüfen Sie die Registrierung im Detail. Wenn dies der gleiche Fall ist, können wir nur darauf warten, dass Google das Problem auf den Testgeräten behebt oder die Anwendung veröffentlicht und dass ein Benutzer mit diesem Gerät denselben Fehler hat.
Für mich geschah dies, weil ich eine Klasse gelöscht, aber vergessen habe, einen Verweis darauf in AndroidManifest.xml zu entfernen.
Durchsuchen Sie Ihre AndroidManifest.xml und stellen Sie sicher, dass sie nicht auf nicht vorhandene Klassen verweist. Sie werden wahrscheinlich rot angezeigt, aber überraschenderweise wird das Projekt weiterhin erstellt.
Der Name wird wahrscheinlich aufgrund der Minimierung / Verschleierung des Builds als neu angezeigt. Ich habe absolut keine Ahnung, warum die Fehlermeldung auf YouTube verweist. Dies gilt auch für mich, wenn ich YouTube nicht in der App verwende.
Das Absturzprotokoll im Pre-Release-Bericht war völlig nutzlos, aber ein Absturzprotokoll in Firebase-Crashlytics enthüllte die Ursache des Problems.
Ich warte immer noch darauf, dass ein Vorab-Bericht zweifellos bestätigt wird, den ich später heute haben werde, aber es scheint sehr wahrscheinlich, dass er auf dem Firebase-Crashlytics-Bericht und den Umständen basiert.
Bearbeiten: Mein Pre-Release-Bericht zeigt diesen Fehler nicht mehr an und wird nach dem Entfernen der hängenden Referenz aus der androidmanifest.xml vollständig übergeben
Ich hatte dieses Problem nach dem Update auf das neueste SDK von firebase. Das Problem war, dass ich die Referenz eines Dienstes, der zuvor aus der App entfernt wurde, nicht entfernt hatte.
- Überprüfen Sie Ihr Manifest und entfernen Sie unnötige Verweise, die rot angezeigt werden.
Auf diese Weise konnte ich diesen Fehler aus dem Prelaunch-Bericht entfernen.