開発中にCrashlyticsを無効にする方法


245

開発中にCrashlytics Android SDKをオフにする簡単な方法はありますか?

バカなことをするたびにクラッシュを起こしたくない

一方、コメントアウトしたくないので、コメントCrashlytics.start()を外してコミットするのを忘れる危険性があります


マニフェストからAPIキーを削除してみましたか?それがクラッシュかどうかは覚えていません。
Timmetje 2013年

@timmiedクラッシュします。また、Manifestクラッシュの行全体にコメントを付けるとアプリがクラッシュするので、質問がもう少し合法になります。
マイケル

回答:


172

CrashlyticsのMarcはこちら。デバッグビルドの実行中にCrashlyticsを無効にする方法がいくつかあります。

  1. デバッグビルドとリリースビルドに別のandroid:versionStringを使用し、デバッグバージョンのCrashlyticsウェブダッシュボードからクラッシュレポートを無効にします。

  2. Crashlytics.start()の呼び出しを、デバッグフラグをチェックするifステートメントにラップします。カスタムフラグまたはここで提案されているようなアプローチのいずれかを使用できます:APKが署名されているか、または「デバッグビルド」されているかどうかを確認する方法?


5
@marcr BuildConfig.DEBUGを使用するだけではどうですか?
dannyroa 2013

3
@dannyroa BuildConfig.DEBUGは、すべてのビルド環境で機能する標準のフラグではありません。私はそれがEclipseとADTでビルドするときに一貫して設定されていると信じていますが、他の場所では設定していません。
2014年

11
BuildConfig.DEBUGGradleを使用してビルドする場合に使用する必要があります。常に適切に生成されます。
オースティンマホニー2014

3
@marcr最新バージョンのcrashlytics(Fabricとマージされているように見える)では、ライブラリは内部チェックを行いBuildConfig.DEBUGますか?
akhy 2015年

2
それは自動的にチェックされていない@akhyar、私が使用します(BuildConfig.DEBUG!){Fabric.with(この、新しいCrashlytics());}場合
ビョルンKechel

387

Crashlyticsのソリューションを見つけました(Fabric統合を使用)

次のコードをアプリケーションクラス内に配置します onCreate()

Crashlytics crashlytics = new Crashlytics.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, crashlytics);

編集:

Crashalitics 2.3以降では、これは非推奨です。正しいコードは次のとおりです。

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());

または

Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build());

Crashlyticsの非推奨メソッドdisabled()からコピー)


EDIT2:

オプションでこれをbuildTypeイングラドルに追加することもできます。このコマンドは、crashlyticsマッピングファイルの送信を無効にし、ビルドごとにIDを生成することで、これらのフレーバーのGradleビルドを高速化します。(実行時にCrashlyticsを無効にすることはありません。)ここでMike Bの回答を参照してください。

buildTypes {
    release {
           ....
    }
    debug {
        ext.enableCrashlytics = false
    }
}

2
これははるかに使いやすく、アプリケーションクラスの外でコード内のCrashlyticsを呼び出すと、アプリのクラッシュを停止します。
speedynomads

1
Crashlytics 2.3.0で非推奨になりました:(
Damian Walczak、2015年

1
ext.enableCrashlytics = false 2.5でも動作しません。実際には、それは決して機能しませんでした。ファブリックの前でも。
Bao-Long Nguyen-Trong 2015

2
ここで心配です。これでAnswerとBetaが有効になりますか?これはもっと正しいはずです:CrashlyticsCore core = new CrashlyticsCore.Builder()。disabled(BuildConfig.DEBUG).build(); Fabric.with(this、new Answers()、new Beta()、new Crashlytics.Builder()。core(core).build());
gbero 2015年

1
ext.enableCrashlytics = falseは、これを正しく使用してもクラッシュしません。クラッシュを克服する方法は、Fabricsのドキュメントにあります:docs.fabric.io/android/crashlytics/build-tools.html
Frank

46

選ばれた答えはもはや正しくありません。Google はCrashlytics の統合変更しました。私の現在のバージョンは、Gradleファイル2.9.1に追加implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1'することだけです。他に必要なことはありませんが、これはCrashlyticsが常に実行されていることを意味します。

解決策1

Crashlyticsはリリースバージョンでのみコンパイルしてください。

dependencies {
   ...
   releaseImplementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version
}

解決策2

Crashlytics追加で構成する場合、Crashlyticsクラスがデバッグビルドに見つからないため、ソリューション1は機能しません。したがって、Gradleの実装を次のように変更します。

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version

次にマニフェストに移動し、meta-dataタグ内に次のタグを追加しますapplication

<application
        android:name="...>

        <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="false" />

...

</application>

Launch-Activityに追加(すべてのアクティビティではなく、1回のみ必要)

if (!BuildConfig.DEBUG) { // only enable bug tracking in release version
   Fabric.with(this, new Crashlytics());
}

これにより、リリースバージョンでのみCrashlyticsが有効になります。Crashlyticsを構成するときに、BuildConfig.DEBUGも確認してください。例:

if (!BuildConfig.DEBUG) {
   Crashlytics.setUserIdentifier("HASH_ID");
}

2
これはきれいに見えます。アプリケーションインスタンスではなく、プライマリアクティビティで初期化する代わりに?
ジュール、

彼らはウェブサイトでこう述べています:Enable collection for selected users by initializing Crashlytics from one of your app's activitiesしかし、アプリケーションでCrashlyticsを初期化しても、それほど変化しないと思います。やってみましたか?それが機能する場合、私はそれを私の答えに追加できます。 firebase.google.com/docs/crashlytics/customize-crash-reports
ポールSpiesberger

2
実行時にcrashlyticsを無効にするために、他のソリューションを機能させることができませんでした。ソリューション1は完全に機能しました。なぜ私はそれを考えなかったのですか。

解決策をありがとう。firebase_crashlytics_collection_enabledマニフェストでfalse に設定すると、コンソールにクラッシュが表示されません(v2.9.9を使用しています)。私はデバッグビルドの別々のマニフェストを追加することで、これを固定だからfirebase_crashlytics_collection_enabled=falsetrue解放のために
ワシーリーKabunov

30

Gradleを使用する場合は、これをフレーバーに追加するだけです。

ext.enableCrashlytics = false

1
それは味だけですか?デバッグとリリースはどうですか?デバッグのために無効にしようとしましたが、それでもクラッシュを送信しました
xialin '25年

フレーバーでのみ機能すると思います。AustynとMarccが指すフラグを使用するIMOが最も簡単です。
user1998494 2014年

私は解決策を見つけました。古いCrashlyticsと互換性があるかどうかは不明です。これは、Fabric SDKの新しいCrashlytics用です。以下の私の答えを確認してください
xialin 2014年

1
このコマンドは、crashlyticsマッピングファイルの送信を無効にし、ビルドごとにIDを生成することで、これらのフレーバーのGradleビルドを高速化します。(実行時にCrashlyticsを無効にすることはありません。)ここでMike Bの回答を参照してください。 stackoverflow.com/questions/28339323/...
エイフェックス・

18
これによりクラッシュが発生しました... " This app relies on Crashlytics."
Sakiboy 2016年

27

最新のドキュメントをご覧ください。 https://docs.fabric.io/android/crashlytics/build-tools.html#gradle-advanced-setup

ext.enableCrashlytics = falseあなたがする必要があるbuild.gradeの追加とは別に、

Crashlytics crashlyticsKit = new Crashlytics.Builder()
    .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
    .build();

// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);

私はこの方法を試しましたが、それでもアプリがクラッシュしますThis app relies on Crashlytics. Please sign up for access at
Balflear

私はあなたがext.enableCrashlytics = falsebuild.gradleに欠落していると思います。
Abhishek Patidar

いいえ、私はそれがでだ、build.gradleファイルにデバッグビルドタイプに追加したbuildTypes -> debug, also i'm applying the plugin via 「io.fabric'`:プラグインの適用
Balflear

このソリューションが24回賛成された理由がわかりません。クラッシュThis app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up
踏んだ

24

私が見つかりました。これは最も簡単な解決策になります。

    release {
        ...
        buildConfigField 'Boolean', 'enableCrashlytics', 'true'
    }
    debug {
        buildConfigField 'Boolean', 'enableCrashlytics', 'false'
    }

上記の行は、という静的ブールフィールドが作成されますenableCrashlyticsBuildConfig、あなたが開始するかどうかを決定するために使用できるファイルFabricかどうかを:

    if (BuildConfig.enableCrashlytics)
        Fabric.with(this, new Crashlytics());

注:この方法では、Fabricsはリリースビルドでのみ初期化されます(上記のコードで示されています)。つまり、以下のように、Fabricsが初期化されているかどうかをチェックCrashlyticsするifブロックのクラスの静的メソッドへの呼び出しを配置する必要があります。

if (Fabric.isInitialized())
    Crashlytics.logException(e);

そうMust Initialize Fabric before using singleton()しないと、エミュレータでテストするときにアプリがエラーでクラッシュします。


17

2019回答

Crashlyticsをリリースでのみ有効にし、デバッグで2時間だけ無効にして、Firebaseコンソールで例外がアップロードされているかどうかを確認しました。

これを行う方法は2つあります。

オプション1

機能しますが、Crashlyticsデバッグビルドでメソッドを呼び出すと、アプリがクラッシュしますます。

app / build.gradle

android {
    buildTypes {
        release {
            manifestPlaceholders = [crashlyticsEnabled: true]
        }
        debug {
            manifestPlaceholders = [crashlyticsEnabled: false]
        }

AndroidManifest.xml

<manifest
    <application
        <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="${crashlyticsEnabled}" />

オプション2

最初にCrashlyticsチェックせずにメソッドを呼び出すことができる場合の代替手段BuildConfig.DEBUG。この設定により、次のようなメソッドを安全に呼び出すことができますCrashlytics.logException() -デバッグビルドでは何もしない デバッグでアップロードされているレポートが表示されません。

app / build.gradle

android {
    buildTypes {
        release {
            ext.enableCrashlytics = true
        }
        release {
            ext.enableCrashlytics = false
        }

AndroidManifest.xml

<manifest
    <application
        <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="false" />

アプリケーションonCreate()

val crashlytics = Crashlytics.Builder()
    .core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
    .build()
Fabric.with(this, crashlytics)

android:value="false"変更する必要があると思いますandroid:value="${enableCrashlytics}"。じゃない?
JaydeepW

オプション#2のもう1つの利点は、最初に無効になっているアナリティクスコレクションから始めて、最初にユーザーに、アプリの使用状況を追跡してもよいかどうかを尋ねることができることです(GDPRを考えてください)。次に、ユーザーが追跡に同意した場合にのみ、Fabric.with呼び出しを実行します。
クリスチャンヘンデン

オプション#2の唯一の欠点は、Firebaseダッシュボードにデバッグバージョンが作成されることです。ただし、クラッシュは表示されません(無効になっているため)。これには2つの問題があります。1つ目は、リリースバージョンを見つけるのが難しくなることです。2番目-Firebaseダッシュボードには最新の100バージョンのみが表示されるため、一部の古いバージョンではクラッシュが表示されない場合があります。Fabricダッシュボードでは、特定のバージョンを無効にすることができましたが、Firebaseのダッシュボードではこれを行うことはできません
Alex Lipov

14

これを MyApplication#onCreate()

if (!BuildConfig.DEBUG) Crashlytics.start(this);

編集 ファブリックにアップグレードした場合は、代わりにこの回答を使用してください。


BuildConfig.DEBUGが常に正しく設定されているとは限りません。Crashlyticsを有効/無効にするためにそれに依存すると、IntelliJの使用中にかなりの数の問題が発生しました。
Zeb Barnett

5
どのビルドツールを使用していますか?Gradleは常にその値を設定します。1年前の問題でしたが、新しいビルドツールの方がはるかに優れています。
オースティンマホニー2014

IntelliJのGradleプラグインのv0.9。+とGradle自体のv1.11を使用しています。
Zeb Barnett

私は私のアプリのいずれにも問題を見ていません。BuildConfig実行が保証されているGradleタスクによって生成されます。buildConfigFieldカスタムフィールドの設定にも使用しており、それらは常に機能します。tools.android.com/recent/androidstudio045releasedもを使用することを示唆していますBuildConfig.DEBUG
オースティンマホニー2014

理想主義者として、私が働く中小企業の完全に自動化されていないビルドプロセスを簡素化するために、それを使用できるようにしたいと思います。それは、そのフラグに依存するビルドを本番環境にリリースしただけであり、Crashlyticsはそれがライブになるのを見たことはありません。手動での切り替えに戻った後、Crashlyticsはすぐにそれを確認しました。
Zeb Barnett 2014年


9

別のマニフェストファイルを必要としないため、私が好むもう1つの簡単なソリューション:

ステップ1-build.gradleでマニフェストプレースホルダーを定義する

android {
    ...
    buildTypes {
        release {
            manifestPlaceholders = [crashlytics:"true"]
        }
        debug {
            manifestPlaceholders = [crashlytics:"false"]
        }
    }
    ...
}

ステップ2-それらをAndroidManifest.xmlで使用する

<meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="${crashlytics}" />

6

デバッグビルドでは、煩わしいシンボルのアップロードを無効にすることもできます。

def crashlyticsUploadStoredDeobsDebug = "crashlyticsUploadStoredDeobsDebug"
def crashlyticsUploadDeobsDebug = "crashlyticsUploadDeobsDebug"
tasks.whenTaskAdded { task ->
    if (crashlyticsUploadStoredDeobsDebug.equals(task.name) ||
            crashlyticsUploadDeobsDebug.equals(task.name)) {

        println "Disabling $task.name."
        task.enabled = false
    }
}

それをbuild.gradleアプリケーションモジュールのに入れるだけです。


6

すべてのクラッシュ(デバッグビルドとリリースビルド)をキャプチャしたいが、Crashlyticsダッシュボードでそれらを分離したい場合は、次のコード行をbuild.gradleに追加できます。

debug {
    versionNameSuffix "-DEBUG"
}

たとえば、アプリのversionNameが1.0.0の場合、リリースビルドは1.0.0としてタグ付けされ、デバッグビルドは1.0.0-DEBUGになります。


これだよ?フレーバーをする必要はありませんか?
ポートフォリオ

6

ここには多くの良い答えがありますが、私のテストでは、社内ベータ版のデバッグビルドと、クラッシュログが依然として非常に有用であり、それらを報告したいというラボ外のテストを使用しています。OPと同様に、私が頻繁にクラッシュを引き起こして迅速に解決しているアクティブな開発中は、それらを無効にすることだけが必要でした。

すべてのデバッグクラッシュを削除するのではなく、次のコードを使用してデバイスが開発マシンに接続されている間のみレポートを無効にすることを選択できます。

if (!Debug.isDebuggerConnected()) {
    Fabric.with(this, new Crashlytics());
}

それは間違っています。を使用してコードに致命的でない例外を記録し、Crashlytics.logException(e)Fabricシングルトンが初期化されていないため、このステートメントはデバッグビルドで例外をスローします。Crashlyticsを使用する場合は、常にファブリックシングルトンを初期化してください。ファミーの答えを参照してください。
naXa 2018

5

問題は、どのソリューションも最新のcrashlytics SDKで機能しないことです。(私は2.9.0を使用しています)

これは、プロジェクトにコンパイルされ、アプリケーションのonCreateを呼び出す前に実行されるため、コードで無効にすることはできません。したがって、他の解決策は簡単です-不要なときにcrashlyticsをコンパイルしないでください。build.gradleファイル内の「compile」呼び出しを「releaseCompile」に置き換えます。

 releaseCompile('com.crashlytics.sdk.android:crashlytics:2.9.0@aar') {
        transitive = true
    }

3

Gradleを使用してビルドする場合の最新の最も簡単なバージョン:

if (!BuildConfig.DEBUG) {
    Fabric.with(this, new Crashlytics());
}

Crashlytics用のFabricの新しい組み込み構文を使用し、Gradleビルドで自動的に動作します。


3

私が遭遇した奇妙な問題:私はxialinの回答(公式ウェブサイトにも表示されています)をフォローしましたが、機能しませんでした。私がBuildConfigデバッグモードでもfalseに設定された静的DEBUG変数を含むファブリックのパッケージで参照していることがわかりました。

したがって、前述のソリューションに従ってもデバッグレポートが表示される場合は、これを参照していることを確認してください。

import com.yourpackagename.BuildConfig;

そしてこれではありません:

import io.fabric.sdk.android.BuildConfig;    

2

BuildConfig.DEBUG正しくセットアップされていないことが心配な場合は、ApplicationInfo代わりに使用してください:

boolean isDebug = ( mAppContext.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) != 0;
Crashlytics crashlytics = new Crashlytics.Builder().disabled( isDebug ).build();
Fabric.with( uIContext, crashlytics );

2

フレーバーまたはビルド構成を使用します。開発ビルドには別のビルドIDを使用してください。クラッシュすると、引き続き別のアプリに移動します。ビルドをピアと共有したり、デバッガなしで使用したりする場合に便利です。このようなもの -

    productFlavors {
    dev {
        applicationId "io.yourapp.developement"
    }
    staging {
        applicationId "io.yourapp.staging"
    }

    production {
        applicationId "io.yourapp.app"
    }

2

デバッグ可能なリリースビルドが必要な場合は、次の方法があります。

buildTypes {
    release {
        signingConfig signingConfigs.config
        debuggable true //-> debuggable release build
        minifyEnabled true
        multiDexEnabled false
        ext.enableCrashlytics = true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField 'boolean', 'BUILD_TYPE_DEBUG', 'false'
    }
    debug {
        minifyEnabled false
        multiDexEnabled true
        ext.enableCrashlytics = false
        ext.alwaysUpdateBuildId = false
        // Disable fabric build ID generation for debug builds
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField 'boolean', 'BUILD_TYPE_DEBUG', 'true'
    }
}

設定すると debuggable true、あなたのBuildConfig.DEBUGは、私はBuildConfigクラスでその変数を追加した理由です、本当で初期化されます。

初期ファブリック:

Crashlytics crashlytics = new Crashlytics.Builder()
            // disable crash reporting in debug build types with custom build type variable
            .core(new CrashlyticsCore.Builder().disabled(BuildConfig.BUILD_TYPE_DEBUG).build())
            .build();

    final Fabric fabric = new Fabric.Builder(this)
            .kits(crashlytics)
            //enable debugging with debuggable flag in build type 
            .debuggable(BuildConfig.DEBUG)
            .build();

    // Initialize Fabric with the debug-disabled crashlytics.
    Fabric.with(fabric);

それらはどこにも参照されていないようでext.enableCrashlyticsありext.alwaysUpdateBuildId、その目的は何ですか?何か不足していますか?
ジュール


BuildConfig.BUILD_TYPE_DEBUGは冗長です。BuildConfig.DEBUGを使用して同じ値を取得できます
Antonis Radz

@AntonisRadzデバッグ可能なリリースビルドが必要だったため
M. Reza Nasirloo

1

ファブリックのisDebuggable()メソッドを使用できます。

import static io.fabric.sdk.android.Fabric.isDebuggable;

if(! isDebuggable()){
    // set Crashlytics ... 
}

ハッピーコーディング:)


1

デバッグモード専用のマニフェストファイルを使用できます(Crashlytics 2.9.7で動作します)。

ファイルapp/src/debug/AndroidManifest.xmlを作成し、以下を追加します。

<application>

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false"/>

</application>

このメタデータ要素は、通常のAndroidManifest.xmlではなく、debug / AndroidManifest.xmlにのみ配置する必要があることに注意してください。

を使用するソリューションCrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()は機能しませんでした。Application.onCreate()が呼び出される前、またはアクティビティが開始される前に、CrashlyticsInitProviderによってcrashlyticsが初期化されることがわかりました。つまり、アプリケーションまたはアクティビティでファブリックを手動で初期化すると、ファブリックはすでに初期化されているため、効果があります。


1

ステップ1:build.gradeで

buildTypes {
        debug {
            debuggable true
            manifestPlaceholders = [enableCrashlytic:false]
        }
        release {
            debuggable false
            manifestPlaceholders = [enableCrashlytic:true]
        }
    }

ステップ2:マニフェスト

<meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="${enableCrashlytic}" />

ステップ3:アプリケーションまたは最初のアクティビティ

private void setupCrashReport() {
        if (BuildConfig.DEBUG) return;
        Fabric.with(this, new Crashlytics());
    }

手順3が必要かどうかはわかりませんが、リリースバージョンがクラッシュすることなく動作することを確認します。ソース:https : //firebase.google.com/docs/crashlytics/customize-crash-reports#enable_opt-in_reporting


1

私にとってこの作品:

    releaseCompile  'com.crashlytics.sdk.android:crashlytics:2.9.9'

そしてbuildTypesで:

debug {
ext.enableCrashlytics = false
}

コードでのCrashlyticsの使用についてはどうですか?コンパイルエラーが発生します。
マイサー

1

次のバージョンのcom.google.firebase:firebase-crashlytics:17.0.0でFirebase Crashlyticsを無効にするには、2つのオプションがあります。

  1. アプリのマニフェストにメタタグを追加する

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

または

  1. アプリで直接構成します(falseに設定されている場合、新しい値はアプリの次の実行まで適用されないことに注意してください)

FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)


0

IDEでのみ実行する場合の別の方法は、プラグインからログアウトすることです。どうやら、再度ログインせずにビルドを生成している間は、レポートの送信を停止します。


0
  1. これをアプリのbuild.gradleに追加します。

    android {
        buildTypes {
            debug {
              // Disable fabric build ID generation for debug builds
              ext.enableCrashlytics = false
              ...
  2. 実行時にCrashlyticsキットを無効にします。それ以外の場合、Crashlyticsキットはエラーをスローします。

    // Set up Crashlytics, disabled for debug builds
    // Add These lines in your app Application class onCreate method
    
    Crashlytics crashlyticsKit = new Crashlytics.Builder()
        .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
        .build();
    
    // Initialize Fabric with the debug-disabled crashlytics.
    Fabric.with(this, crashlyticsKit);
  3. AndroidManifest.xmlに、

    <meta-data
    android:name="firebase_crashlytics_collection_enabled"
    android:value="false" />

0

2020ポストファブリックアンサー

以下のコードをアプリケーションクラスに貼り付け、setCrashlyticsStateアプリケーションのonCreateからメソッドを呼び出します。オプションで、テストデバイスIDをdebugDevices HashSetに、リリースモードでビルドしている場合でも、個人用デバイスを無視できるようにすることもできます。

注意。によって返されるデバイスIDは、一意または一定であることが保証さSettings.Secure.getString(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);ていませ(出荷時にリセットされたか、ルート化されたデバイスで手動で変更される可能性があります)。しかし、それで十分です。

private final HashSet<String> debugDevices = new HashSet<String>(Arrays.asList("6a3d5c2bae3fd32c"));

private boolean isDebugDevice(String deviceId) {
    return debugDevices.contains(deviceId);
}

private void setCrashlyticsState() {
    @SuppressLint("HardwareIds")
    String deviceId = Settings.Secure.getString(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);
    if (BuildConfig.DEBUG || isDebugDevice(deviceId)) {
        Log.v("DeviceId", deviceId);
        FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false);
    }
}

そのBuildConfigを確認します。正しいBuildConfigクラスを調べています。多くの場合、いくつかのオプションがあり、間違ったオプションがドラッグされる可能性があります。


-8

これはばかげた答えです。
コメントアウトしてFabric.with(this, new Crashlytics());、それに取り組み、リリースするときにコメントを外してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.