web-dev-qa-db-ja.com

Crashlytics / FabricはAndroidでクラッシュを報告しない

Fabric/Crashlyticsに問題があります。

Android Studio 1.3.2を使用しています

ここに私のbuild.gradleがあります

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'

repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
}

Android {
...
}

dependencies {
    ...
    compile('com.crashlytics.sdk.Android:crashlytics:2.5.2@aar') {
        transitive = true;
    }
}

マニフェストにAPIキーを追加しました(メタデータcom.crashlytics.ApiKeyとio.fabric.ApiKeyを追加しました)。

ApplicationクラスでFabricを開始しています

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

問題は、ベータ版が動作している(共有、更新、アプリを開くことができる)、Answersが動作している(セッションがリストされ、すべて)、例外をログに記録できることです

Crashlytics.logException("Test");

また、致命的ではないクラッシュがFabricダッシュボードに追加されます。

しかし、何らかの理由で、「致命的な」クラッシュは報告されず、Fabricに送信されません。誰か助けてくれますか?理由は何でしょうか?私は何を間違えていますか?

ところで-これはCrashlyticsからFabricへのアップデート後に起こり始めました。プラグインを再インストールし、アプリを削除して再度追加し、Android Studio。

23
dmestrovic

Applicationクラスに追加してみてください:

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

テストクラッシュレポートの使用:

Crashlytics.getInstance().crash();

致命的でないレポートを使用する場合:

Crashlytics.log("Your log");
Crashlytics.logException(new Throwable("This your not-fatal name"));

現時点では、Android=の場合、ファブリックAPIを最新の2.9.3に更新する必要があります。メインファイルでは、create()メソッドの最後にこれを追加する必要があります

final Fabric fabric = new Fabric.Builder(this)
            .kits(new Crashlytics())
            .debuggable(true)
            .build();
Fabric.with(fabric);
5
vallabh

私はわずかに異なる問題を抱えていました。プロジェクトにAnswersの依存関係を追加した後、Crashlyticsが突然クラッシュのロギングを停止しました。

 compile('com.crashlytics.sdk.Android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
 compile('com.crashlytics.sdk.Android:answers:1.3.10@aar') {
        transitive = true;
    }

解決策は、Answers依存関係を削除することです。 crashlytics pacakge com.crashlytics.Android.answers。*に既に存在するため、必要ありません。

これは一部のユーザーに役立つかもしれません。

3

使用後

final Fabric fabric = new Fabric.Builder(this) .kits(new Crashlytics()) .debuggable(true) .build(); Fabric.with(fabric);

implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.9'
implementation 'com.crashlytics.sdk.Android:answers:1.4.7'

これをAndroidManifest.xmlに追加します

<meta-data
        Android:name="io.fabric.ApiKey"
        Android:value="MyFabricApiKey" />
    <meta-data Android:name="firebase_crashlytics_collection_enabled" Android:value="false" />

FirebaseとFabricパネルの両方でクラッシュを表示できます。ありがとう。

0
AllanRibas