ECCEZIONE FATALE: Firebase-Messaging-Intent-Handle - java.lang.NoClassDefFoundError
Non utilizzo alcun codice / libreria Firebase o Youtube nel mio progetto. Eppure di recente, nei rapporti pre-rilascio di Android, vedo arresti anomali con questo:
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)
Ecco un altro registro con più dettagli, ma diversi problemi:
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)
...
Qualche idea per favore?
Non ho idea di cosa sia dkp: libelements.so". Google non mostra risultati.
Ho caricato una versione su Google Play con minifyEnableded shrinkResourcesentrambi impostati su false, ma gli errori Firebase / Youtube nei rapporti pre-lancio sono ancora offuscati. E riguarda solo due dispositivi: Nokia 1 e Huawei P8 青春 版.
Quando ho caricato il file non offuscato su Google Play, sono stato avvertito che la mia app conteneva codice offuscato e che dovevo caricare un file di mappa. Non ho idea di come sia il codice Firebase / Youtube nel mio binario e guardando attraverso i miei commit non ci sono stati aggiornamenti per nessuna delle mie librerie nel periodo in cui gli errori hanno iniziato a comparire.
AGGIORNARE:
Questo problema è stato aggiunto a questa segnalazione di bug:
https://issuetracker.google.com/issues/160907013
Risposte
Soluzione: ignora
Tutti i segnali indicano che questo è un problema con i rapporti pre-lancio di Google Play e non il nostro codice.
Modifica: il prodotto e i team tecnici di Google https://issuetracker.google.com/issues/160907013#comment25del problema. Ma sembra che potrebbero aver bisogno di alcune persone in più per dare loro un senso della portata del problema. Forse considera la possibilità di postare sulla segnalazione di bug.
Ho lo stesso problema anche quando provo a pubblicare una nuova versione della mia applicazione sviluppata anche in java con Android Studio, nel pre lancio viene mostrato un errore per il dispositivo Huawei P8 青春 版 con Android 5.0 (SDK 21). L'errore è il seguente:
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)
Ma durante il download del registro completo, trovo che l'errore appare prima dell'avvio dell'applicazione:
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
...
Ma nel video che Google fa per il test l'applicazione non fallisce mai e puoi vedere chiaramente che inizia alle 06:57:07, quindi i tempi non corrispondono.
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.
Controlla il registro in dettaglio, se è lo stesso caso possiamo solo aspettare che Google risolva il problema sui loro dispositivi di prova o pubblichi l'applicazione e che qualche utente con quel dispositivo abbia lo stesso errore.
Per me, questo stava accadendo perché ho eliminato una classe, ma ho dimenticato di rimuovere un riferimento ad essa in AndroidManifest.xml.
Passa attraverso il tuo AndroidManifest.xml e assicurati che non faccia riferimento a classi inesistenti, probabilmente verranno visualizzate in rosso, ma sorprendentemente il progetto verrà comunque costruito.
Il nome probabilmente viene visualizzato come nuovo a causa della minimizzazione / offuscamento della build. Non ho assolutamente idea del motivo per cui il messaggio di errore fa riferimento a YouTube, lo fa anche per me quando non uso YouTube nell'app.
Il registro degli arresti anomali nel rapporto pre-rilascio era totalmente inutile, ma un registro degli arresti anomali in Firebase crashlytics ha rivelato la fonte del problema.
Sto ancora aspettando un rapporto pre-rilascio per confermare senza dubbio, che avrò più tardi oggi, ma sembra molto probabile in base al rapporto di Firebase crashlytics e alle circostanze.
Modifica: il mio rapporto pre-rilascio non mostra più questo errore e viene superato completamente dopo aver rimosso il riferimento sospeso da androidmanifest.xml
Ho riscontrato questo problema dopo l'aggiornamento all'ultimo SDK di Firebase. Il problema era che non avevo rimosso il riferimento di un servizio che era stato precedentemente rimosso dall'app.
- controlla il tuo manifest e rimuovi i riferimenti non necessari che verranno mostrati in rosso.
In questo modo, sono stato in grado di rimuovere questo errore dal rapporto di prelaunch.