web-dev-qa-db-ja.com

Crashlyticsファブリック:タスクの実行に失敗しました

問題が発生しており、解決方法がわかりません。

私のプロジェクトはcrashlyticsを使用していますが、それは常にクラッシュし、レポートは送信されません。 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)

[〜#〜]編集[〜#〜]

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

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");
    }
}
32
keytronic

以下をbuild.gradleに追加して、TimeoutExceptionを修正しました

ext.enableCrashlytics = true

または、すでにいくつかの拡張機能がある場合:

ext {
    ...
    enableCrashlytics = true
}
5
Fadils

この問題が原因で、2019年も頭がおかしくなりましたが、私はようやく例外の原因を突き止めました。

firebaseの公式ドキュメント に記載されているすべての設定手順に従いましたが、自分のソリューションをテストしたところ、TimeoutExceptionが原因でFirebase Crashlytics管理に関するレポートがありませんでした。

その理由は、私の場合、メインアクティビティのonCreate()またはonResume()メソッドで例外をトリガーしたためです。最初の起動時にアプリを例外なく実行した後、エラーなしでレポートを取得し始めたので、最初の起動時にアプリが重要であることは重要だと思いますtフックメソッドで例外をスローします

私の経験が役に立てば幸いです。

1
Zsolt N. Szabo

この問題も発生しました。 Android Studio -> File -> Invalidate Caches / Restart -> Invalidate and restart

1
Hylke Bron

はい。 build.gradleのプラグインセクションを適用した直後に、extソリューションを配置します

apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'

ext {
    enableCrashlytics = true
}

Android { }

!次に、キャッシュを無効にして再起動します。また、implementation 'com.crashlytics.sdk.Android:crashlytics:2.10.1'

0
Andrew F

まだこれで苦労している人のために、私はAndroidスタジオファブリックプラグインを設定->プラグインから直接インストールすることで解決しましたAndroidスタジオでプラグインにコードを編集させますgradle。ここでそれを確認できます: https://www.youtube.com/watch?v=Qvqr6vGzxIs

0
Harshil Pansare

ここでも同じことですが、Googleドキュメントに従っているのに機能しません。 5年前、Crashlyticsは非常に堅実でした。これを見て悲しい。

0
Thierry

私の解決策は次のとおりです:

  1. 古いファブリック関連のコードをすべて削除します
  2. アプリをFirebaseに完全に移行します。そのために link を使用します
  3. 私の観察によると、アプリが次に起動されたときにCrashlyticがレポートを送信し、Application::onCreateメソッドでアプリが毎回クラッシュする場合、Firebaseコンソールにレポートが表示されない可能性があります。

それをテストする方法:

  1. Application::onCreateメソッドでテスト例外がスローされました
  2. 投げてアプリを再度起動することについてコメントしました
  3. 約1分で、Firebaseコンソールでクラッシュが発生しました。

それもあなたに役立つことを願っています!

0
Dmytro Batyuk

あなたのAndroidManifest.xmlファイルを確認してください。このファイルには、重複した、または2回以上書き込まれたプロバイダーが含まれています。

なぜなら、この問題はデバイス固有の問題が発生したため、しばらく前に問題が発生し、これが私の最終的な解決策だからです。

0
Prince