Solución:
Encontré la solución de Crashlytics (con integración de Fabric)
Ponga el siguiente código dentro de su clase de aplicación onCreate()
Crashlytics crashlytics = new Crashlytics.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, crashlytics);
EDITAR:
En Crashalitics 2.3 y superior, esto está en desuso. El código correcto es:
CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());
o
Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build());
(copiado del método obsoleto de Crashlytics disabled ())
EDIT2:
Opcionalmente, también puede agregar esto a su buildType
en gradle. Este comando deshabilita el envío del archivo de mapeo de crashlytics y la generación de una ID para cada compilación, lo que acelera las compilaciones de Gradle de esos sabores. (No deshabilita Crashlytics en tiempo de ejecución). Vea la respuesta de Mike B aquí.
buildTypes {
release {
....
}
debug {
ext.enableCrashlytics = false
}
}
Marc de Crashlytics aquí. ¡Aquí hay un par de formas de deshabilitar Crashlytics mientras realiza sus compilaciones de depuración!
-
Usa un android: versionString diferente para depurar y lanzar compilaciones y luego deshabilita los informes de fallas desde el panel web de Crashlytics para la versión de depuración.
-
Envuelva la llamada a Crashlytics.start () en una declaración if que verifique una marca de depuración. Podrías usar una bandera personalizada o un enfoque como los propuestos aquí: ¿Cómo verificar si el APK está firmado o “depurar compilación”?
La respuesta elegida ya no es correcta. Google cambió la integración de Crashlytics. Mi versión actual es 2.9.1
y lo único que tuve que hacer es agregar implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1'
a mi archivo Gradle. No se requieren más cosas, bueno, pero esto significa que Crashlytics siempre se está ejecutando.
Solucion 1
Compile Crashlytics solo en la versión de lanzamiento:
dependencies {
...
releaseImplementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version
}
Solucion 2
Si desea configurar adicionalmente Crashlytics, la Solución 1 no funciona, ya que las clases de Crashlytics no se encontrarán en Debug Builds. Así que vuelva a cambiar la implementación de Gradle a:
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version
Luego vaya a su Manifiesto y agregue lo siguiente meta-data
etiqueta dentro de la application
etiqueta:
<application
android:name="...>
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
...
</application>
Agregue a su actividad de lanzamiento (solo se requiere una vez, no todas las actividades)
if (!BuildConfig.DEBUG) { // only enable bug tracking in release version
Fabric.with(this, new Crashlytics());
}
Esto solo habilitará Crashlytics en versiones de lanzamiento. Tenga cuidado, también verifique BuildConfig.DEBUG cuando luego configure Crashlytics, por ejemplo:
if (!BuildConfig.DEBUG) {
Crashlytics.setUserIdentifier("HASH_ID");
}