android - new - Crashlytics Fabric: Error al ejecutar la tarea
firebase crashlytics (7)
He tenido un problema y no sé cómo solucionarlo.
Mi proyecto usa crashlytics, pero siempre se bloquea y no se envía el informe. Tengo una TimeoutException:
08-25 03:04:31.876 2856-2856/connectivit.app E/Fabric﹕ Failed to execute task.
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:176)
at com.crashlytics.android.core.CrashlyticsExecutorServiceWrapper.executeSyncLoggingException(CrashlyticsExecutorServiceWrapper.java:44)
at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:275)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
--------- beginning of crash
08-25 03:04:31.876 2856-2856/connectivit.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: connectivit.app, PID: 2856
java.lang.RuntimeException: Unable to start activity ComponentInfo{connectivit.app/connectivit.app.Activity.Main.MainActivity}: java.lang.RuntimeException: This is a crash
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.RuntimeException: This is a crash
at connectivit.app.Activity.Main.MainActivity.initTabs(MainActivity.java:117)
at connectivit.app.Activity.Main.MainActivity.onCreate(MainActivity.java:57)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
EDITAR
Mi archivo build.gradle:
buildscript {
repositories {
maven { url ''https://maven.fabric.io/public'' }
}
dependencies {
classpath ''io.fabric.tools:gradle:1.+''
}
}
apply plugin: ''com.android.application''
apply plugin: ''io.fabric''
repositories {
maven { url "https://jitpack.io" }
maven { url ''https://maven.fabric.io/public'' }
}
android {
signingConfigs {
release {
keyAlias ''android.keystore''
storeFile file(''/Users/jordan/android.keystore.jks'')
storePassword ""
keyPassword ""
}
config {
keyAlias ''androiddebugkey''
keyPassword ''android''
storeFile file(''/Users/jordan/.android/debug.keystore'')
storePassword ''android''
}
}
compileSdkVersion 23
buildToolsVersion ''23''
defaultConfig {
applicationId “com.test"
minSdkVersion 14
targetSdkVersion 23
versionCode 12
versionName ''1''
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
debug {
versionNameSuffix "-DEBUG"
}
release {
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
signingConfig signingConfigs.release
}
}
packagingOptions {
exclude ''META-INF/ASL2.0''
exclude ''META-INF/LICENSE''
exclude ''META-INF/NOTICE''
}
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet false
// if true, stop the gradle build if errors are found
abortOnError false
// if true, only report errors
ignoreWarnings true
}
productFlavors {
}
}
dependencies {
//--- Android
compile ''com.android.support:design:23.0.0''
compile ''com.android.support:appcompat-v7:23.0.0''
compile ''com.android.support:multidex:1.0.0''
//--- Fabric
compile(''com.crashlytics.sdk.android:crashlytics:2.4.0@aar'') {
transitive = true;
}
}
Inicialización de Crashlytics:
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
if (!BuildConfig.DEBUG) {
Log.d("Ez", "Release mode. Crashlytics enable");
//Fabric.with(this, new Crashlytics());
} else {
Log.d("Ez", "Debug mode. Crashlytics disable");
}
throw new RuntimeException("This is a crash");
}
}
Verifique su archivo AndroidManifest.xml , contiene cualquier proveedor duplicado o escrito más de dos veces al día.
Porque, este problema se produjo en un dispositivo específico, antes de algún tiempo me enfrenté a un problema y esta es mi solución final.
Para cualquier persona que todavía esté luchando con esto, lo resolví instalando el plugin de la tela de Android Studio directamente a través de Settings-> Plugins android studio y dejé que el plugin editara mi código en gradle. Puedes verlo aquí: https://www.youtube.com/watch?v=Qvqr6vGzxIs
Porque la aplicación puede fallar antes de que Fabric pueda conectarse a su servicio. Solución: simplemente elimine el código de Excepción de lanzamiento y realice una instalación nueva.
Según la guía de soporte de Crashlytics:
Asegúrese de que nuestra línea de SDK sea después de todos los otros SDK de terceros
Así que intenta configurar Fabric.with(this, new Crashlytics());
después de todo su otro sdk relacionado con la inicialización, en su caso. Si no hay otra inicialización de SDK allí, intente configurarlo después de la inicialización de BuildConfig.
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
if (!BuildConfig.DEBUG) {
Log.d("Ez", "Release mode. Crashlytics enable");
//Fabric.with(this, new Crashlytics());
} else {
Log.d("Ez", "Debug mode. Crashlytics disable");
}
Fabric.with(this, new Crashlytics());
throw new RuntimeException("This is a crash");
}
}
Tal vez tengas otra biblioteca que cause este error. Intenta eliminarlo,
por ejemplo puedes probar
maven { url "https://jitpack.io" }
También tengo este problema. Lo resolví simplemente haciendo Android Studio -> File -> Invalidate Caches / Restart -> Invalidate and restart
TimeoutException
la TimeoutException
agregando lo siguiente a mi build.gradle
ext.enableCrashlytics = true
O si ya tienes varias extensiones:
ext {
...
enableCrashlytics = true
}