Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Crashlytics Fabric : Failed to execute task

I've been having an issue and I don't know how to fix it.

My project use crashlytics, but it's always crash and not sent report. I have a 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) 

EDIT

My build.gradle file :

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;     } } 

Crashlytics initialization :

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");     } } 
like image 222
keytronic Avatar asked Aug 25 '15 07:08

keytronic


1 Answers

This issue drove me crazy still in 2019, but I think I finally figured out, what did the exception cause.

I followed all the setup instructions given in the official firebase documentation, but when I tested my solution I didn't get any report on Firebase Crashlytics admin, because of the TimeoutException.

The reason was in my case, that I triggered the Exception in my main activity's onCreate() or onResume() methods. When I let my app at the first start just run without exception, then later I started to get the reports without any error, so I think it's important, that at the first start the app shouldn't throw any exception in the hook methods.

Hope my experience helped.

like image 171
Zsolt N. Szabo Avatar answered Oct 04 '22 11:10

Zsolt N. Szabo