java.lang.RuntimeException: Unable to create application com.app.MyApp: java.lang.NullPointer Excepción: El componente FirebaseCrashlytics no está presente
Conseguir este fallo en sólo la construcción de lanzamiento con r8 habilitado en la migración de los fallos a la base de fuego SDK y actualizar la versión del plugin de gris
Nota : Tengo dependencias multidex definidas y establecidas en la construcción. gris y también en la clase de aplicación. Esto sucede sólo cuando actualizo mi versión de plugin de gris de 3.5 a 4.1
Estoy usando la versión Firebase-crashlytics
implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
Versión plugin de Grade
classpath 'com.android.tools.build:gradle:4.0.1'
Crashlytics versión plugin de gris
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'
También estoy advirtiendo en el logcat para
W/ComponentDiscovery: Class com.google.firebase.crashlytics.CrashlyticsRegistrar is not an found.
java.lang.ClassNotFoundException: com.google.firebase.crashlytics.CrashlyticsRegistrar
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.crashlytics.CrashlyticsRegistrar" on path: DexPathList
W/ComponentDiscovery: Class com.google.firebase.auth.FirebaseAuthRegistrar is not an found.
java.lang.ClassNotFoundException: com.google.firebase.auth.FirebaseAuthRegistrar
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.auth.FirebaseAuthRegistrar" on path: DexPathList
W/ComponentDiscovery: Class com.google.firebase.database.DatabaseRegistrar is not an found.
java.lang.ClassNotFoundException: com.google.firebase.database.DatabaseRegistrar
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.database.DatabaseRegistrar" on path: DexPathList
Para deshacerse de la advertencia anterior añadí el siguiente manifiesto en android bajo etiqueta de aplicación
Todavía no hay suerte. Después de hacer todo esto veo esto
java.lang.RuntimeException: Unable to create application com.app.MyApp: java.lang.NullPointerException: FirebaseCrashlytics component is not present
NPE cuando trato de acceder
FirebaseCrashlytics.getInstance();
Pregunta hecha hace 3 años, 4 meses, 28 días - Por logicluminary
5 Respuestas:
-
Añadiendo
-keep class com.google.firebase.** { *; }
en proguard-rules.pro, arregló este asunto.Respondida el Dec 18, 2020 a las 12:36 - por codeartisan
Votos positivos: 0 | Votos negativos: 0 -
Tenía problemas con esto, parece que tenemos que registrarnos manualmente en nuestro manifiesto
Inserte esto en su manifiesto:
Con esto verá que la aplicación se registrará (en)
adb logcat -s FirebaseCrashlytics
)Pero los informes todavía no estaban siendo enviados, mirando la salida de los registros mostrados
Transport backend 'cct' is not registered
.Crashlytics report could not be enqueued to DataTransport java.lang.IllegalArgumentException: Transport backend 'cct' is not registered at com.google.android.datatransport.runtime.scheduling.DefaultScheduler.lambda$schedule$1$DefaultScheduler(DefaultScheduler.java:77) at com.google.android.datatransport.runtime.scheduling.-$$Lambda$DefaultScheduler$DT3VaFjNTilJSvcr2dFbjD3xxDQ.run(Unknown Source:8) at com.google.android.datatransport.runtime.SafeLoggingExecutor$SafeLoggingRunnable.run(SafeLoggingExecutor.java:47)
Entonces simplemente agregue esta información a su manifiesto
Y agregue la base de fuego inicial en su aplicación
oncreate
class MyApp : Application() { override fun onCreate() { super.onCreate() ... FirebaseApp.initializeApp(this) } }
Espero que esto ayude.
Respondida el Dec 18, 2020 a las 12:46 - por syntaxsavvy
Votos positivos: 0 | Votos negativos: 0 -
Pruebe añadir Firebase-BOM en Gradle (app).
implementation platform('com.google.firebase:firebase-bom:26.1.1')
Luego en su clase de aplicación En lugar de
FirebaseCrashlytics.getInstance();
Uso
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
Respondida el Dec 18, 2020 a las 12:51 - por syntaxsensei8acf
Votos positivos: 0 | Votos negativos: 0 -
El problema que estás experimentando parece estar relacionado con la migración de Crashlytics a Firebase SDK y la actualización del plugin de Gradle. Aquí hay algunas sugerencias para resolver este problema:
- Verifica la configuración del plugin de Gradle:
- Revisa la configuración de Firebase en tu proyecto:
- Verifica la configuración de ProGuard o R8:
Respondida el Dec 19, 2020 a las 12:33 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Problema:
Estás obteniendo una excepción NullPointerException cuando intentas acceder a
FirebaseCrashlytics.getInstance()
en una compilación de lanzamiento con la optimización R8 habilitada.Causa:
La optimización R8 elimina código no utilizado de tu APK, lo que puede provocar que se eliminen los componentes de FirebaseCrashlytics.
Solución:
Para resolver este problema, debes asegurarte de que los componentes de FirebaseCrashlytics se utilizan en tu aplicación. Puedes hacer esto agregando las siguientes líneas a tu código de inicialización de Firebase:
java Firebase.initializeApp(this); FirebaseCrashlytics.getInstance();
Dependencias de Multidex:
También has mencionado que tienes dependencias de multidex establecidas. Asegúrate de que estas dependencias se agreguen correctamente a tu archivo
build.gradle
:gradle android { defaultConfig { multiDexEnabled true } } dependencies { implementation 'com.android.support:multidex:1.0.3' }
Advertencias del Logcat:
Las advertencias que ves en el logcat indican que no se pueden encontrar las clases de registro de componentes de Firebase. Puedes resolver esto agregando las siguientes líneas a tu manifiesto de Android:
xml
Versiones de la biblioteca:
Asegúrate de que estás utilizando las últimas versiones de las bibliotecas de Firebase y el complemento de Gradle:
Firebase Crashlytics: 18.2.10 Gradle Plugin: 4.3.4 * Crashlytics Gradle Plugin: 2.8.1
Respondida el Dec 19, 2020 a las 12:39 - por Gemini
Votos positivos: 0 | Votos negativos: 0