CrashlyticsMissingDependencyException

He estado usando el último Crashlytics (Integración de tela) por un tiempo. Pero recientemente he encontrado el siguiente error de fallo debido a la falta de dependencia aunque no cambié nada sobre las configuraciones de Crashlytics.

¿alguna idea?

02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . \ | | / 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . \ / 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . \ / 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . \/ 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up, install an Android build tool and ask a team member to invite you to this app's organization. 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /\ 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . / \ 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . / \ 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . / | | \ 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | 02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . 02-08 22:18:00.935 18887-18887/? E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.android.staging, PID: 18887 java.lang.RuntimeException: Unable to create application com.example.android.App: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.CrashlyticsMissingDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up, install an Android build tool and ask a team member to invite you to this app's organization. at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4734) at android.app.ActivityThread.access$1600(ActivityThread.java:171) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:157) at android.app.ActivityThread.main(ActivityThread.java:5506) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at dalvik.system.NativeStart.main(Native Method) 

La única solución por ahora, si realmente necesita publicar su aplicación (como yo), cambie los números de versión dinámica a los estáticos:

 [...] classpath 'io.fabric.tools:gradle:1.14.4' [...] compile('com.crashlytics.sdk.android:crashlytics:2.2.0@aar') { transitive = true } [...] 

EDITAR:

Una versión actualizada de la tela sdk se ha publicado, se puede obtener cambiando la línea a esto:

 classpath 'io.fabric.tools:gradle:1.15.2' 

He añadido los siguientes códigos antes de que realmente instaló Fabric / Crashlytics:

 debug { ext.enableCrashlytics = false } 

Eliminarla antes de la primera ejecución con Crashlytics resolvió el problema. El problema ya no se produce después de la primera ejecución.

Parece que se especifica la versión del complemento como:

classpath 'io.fabric.tools:gradle:1.+'

Recoge 1.15.1, que tiene el problema.

Especificar mayor y menor a 1.14 anterior parece ser estable:

classpath 'io.fabric.tools:gradle:1.14.+'

Tuve el mismo problema después de la actualización de plugin. Para resolver necesita eliminar de AndroidManifest.xml:

 <meta-data android:name="com.crashlytics.ApiKey" android:value="API_SECRET_KEY" /> 

Y añadir a fabric.properties:

 apiSecret=API_SECRET_KEY apiKey=YOUR_SECRET_KEY 

ACTUALIZAR:

Ahora, usted tiene que utilizar:

  <meta-data android:name="io.fabric.ApiKey" android:value="API_KEY" /> 

Mike de Crashlytics aquí. Enviamos una versión actualizada – 1.15.2 – más temprano hoy que incluye una corrección para este comportamiento. Si tu corres:

 ./gradlew assemble --refresh-dependencies 

Que tirará en la última versión. También puede ver más detalles sobre la solución aquí.

Si está utilizando la función de desactivación durante la depuración como se muestra

  Crashlytics crashlyticsKit = new Crashlytics.Builder() .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) .build(); Fabric.with(this, crashlyticsKit); 

¿Qué sucede cuando se actualiza la versión de crashlytics es que

 Fabric.with(this, crashlyticsKit); 

Se convierte en

 Fabric.with(this,new Crashlytics()); 

Así que asegúrese de cambiar eso de nuevo a crashlyticskit. Si está haciendo esto correctamente y el error sigue apareciendo, asegúrese de tener

 debug { ext.enableCrashlytics = false } 

Bajo android {buildtypes {}}

Tengo este comentario en gradle

 apply plugin: 'io.fabric' 

Necesitaba descomentarlo

¡O si no la tiene, agregue!

Para mí fue debido a dataBinding = true . La actualización del complemento gradle de la tela a 1.21.0 corrigió el problema: https://twittercommunity.com/t/fabric-gradle-plugin-1-21-0-add-support-for-android-databinding-true/57474

El problema también se produce si accidentalmente incluye el Crashlytics BuildConfig – muy fácil de hacer con Android Studio / IntelliJ auto-importaciones.

Había importado

import com.crashlytics.android.core.BuildConfig;

En lugar de mi

import <package_name>.BuildConfig;

Arreglar para mí De fuente oficial

Deshabilitar Crashlytics para compilaciones de depuración

Si no necesita el informe de fallos de Crashlytics o la distribución beta para las compilaciones de depuración, puede acelerar sus depuraciones de forma segura desactivando el complemento por completo con estos dos pasos:

Primero, añada esto a build.gradle de su aplicación:

 android { buildTypes { debug { // Disable fabric build ID generation for debug builds ext.enableCrashlytics = false ... 

A continuación, desactive el kit Crashlytics en tiempo de ejecución. De lo contrario, el kit Crashlytics lanzará el siguiente error:

 com.crashlytics.android.core.CrashlyticsMissingDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up` 

Puede deshabilitar el kit en tiempo de ejecución para compilaciones de depuración sólo con el código siguiente:

 // Set up Crashlytics, disabled for debug builds Crashlytics crashlyticsKit = new Crashlytics.Builder() .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) .build(); // Initialize Fabric with the debug-disabled crashlytics. Fabric.with(this, crashlyticsKit); 

En caso de que esto ayude a otra persona, tuve un problema similar al actualizar Crashlytics a Fabric. En mi caso, el complemento dejó 2 líneas de Crashlytics que necesitaba eliminar manualmente antes de que funcionara.

En el archivo gradle, en las dependencias de buildscript, tuve que eliminar manualmente:

 classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.16.0' 

También, bajo dependencias, tuve que eliminar manualmente:

 compile 'com.crashlytics.android:crashlytics:1.1.13' 

Puede ser que sea tarde para responder. Pero esto puede ocurrir de una razón más aparte de todas las respuestas anteriores

Si olvida agregar

 apply plugin:'io.fabric' 

Esto puede parecer extraño, pero esto dará como resultado el mismo problema

Esto es por defecto agregado por la tela cuando nos registramos y agregamos el código de la ventana de la tela que usa IDE pero accidentalmente se puede suprimir.

Asegúrese de agregar el apply plugin: 'io.fabric' en su proyecto de aplicación build.gradle . En mi caso, tuve una build.gradle común con apply plugin: 'io.fabric' . Moverlo al proyecto de aplicación resolvió el problema.

En mi caso, estaba usando la tela en un módulo "CommonLib" que se agregó como una dependencia en todos los demás módulos (incluida la aplicación). Por lo tanto, había agregado apply plugin: 'io.fabric' después de buildscript {} bloque. Por lo tanto, he colocado dos plugins juntos:

 apply plugin: 'com.android.library' apply plugin: 'io.fabric' 

Y el problema se resolvió!

Comprobar si los crashlytics están deshabilitados en el archivo build.gradle

  debug { ext.enableCrashlytics = false } 

En su lugar use

  debug { ext.enableCrashlytics = true } 
  • Visualización de todas las fallas de un problema específico en Crashlytics
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.