web-dev-qa-db-ja.com

プロバイダーcom.crashlytics.Android.CrashlyticsInitProviderを取得できません

implementation 'com.google.firebase:firebase-core:16.0.1'およびclasspath 'com.google.gms:google-services:4.0.1'の後

アプリケーションを起動すると、次のエラーが表示され始めました。

致命的な例外:メインプロセス:com.fentury.Android、PID:10771 Java.lang.RuntimeException:プロバイダーを取得できませんcom.crashlytics.Android.CrashlyticsInitProvider:io.fabric.sdk.Android.services.concurrency.UnmetDependencyException:このアプリは依存していますCrashlyticsで。 https://fabric.io/sign_up にアクセスしてサインアップし、Androidビルドツールをインストールして、チームメンバーにこのアプリの組織に招待するよう依頼してください。 Android.app.ActivityThread.installProvider(ActivityThread.Java:5856)at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:5445)at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:5384)at Android.app。 ActivityThread.-wrap2(ActivityThread.Java)at Android.app.ActivityThread $ H.handleMessage(ActivityThread.Java:1545)at Android.os.Handler.dispatchMessage(Handler.Java:102)at Android.os.Looper.loop( Looper.Java:154)Android.app.ActivityThread.main(ActivityThread.Java:6119)at Java.lang.reflect.Method.invoke(Native Method)at com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run( ZygoteInit.Java:886)at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:776)原因:io.fabric.sdk.Android.services.concurrency.UnmetDependencyException:このアプリはCrashlyticsに依存しています。 e https://fabric.io/sign_up でアクセスにサインアップし、Androidビルドツールをインストールし、チームメンバーにこのアプリの組織に招待するように依頼します。 com.crashlytics.Android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.Java:235)at com.crashlytics.Android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.Java:209)at io.fabric.sdk.Android.InitializationTask.onPreExecute (InitializationTask.Java:44)io.fabric.sdk.Android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.Java:611)at io.fabric.sdk.Android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.Java) :43)io.fabric.sdk.Android.Kit.initialize(Kit.Java:69)at io.fabric.sdk.Android.Fabric.initializeKits(Fabric.Java:440)at io.fabric.sdk.Android。 Fabric.init(Fabric.Java:384)at io.fabric.sdk.Android.Fabric.setFabric(Fabric.Java:342)at io.fabric.sdk.Android.Fabric.with(Fabric.Java:313)at com .crashlytics.Android.CrashlyticsInitProvider.onCreate(CrashlyticsInitProvider.Java:27)at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1751)at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1726)at Android.app。 ActivityThread.installProvider(ActivityThread.Java:5853)... 10その他

AndroidManifest.xml次の行にも追加されました。

<meta-data Android:name="firebase_crash_collection_enabled" Android:value="false" />
13
Morozov

これは私の問題を解決するのに役立ちました

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

そしてこれを削除します:

<meta-data Android:name="firebase_crash_collection_enabled" Android:value="false" />
12
Morozov

Firebase Crashlytics docs の指示に従って行う必要があるのは、アプリビルドファイルにファブリックプラグインを適用することだけであることがわかりました(この手順は実際にはドキュメントにありません!)。

アプリレベルのbuild.gradleに以下を追加します

// Apply the Fabric plugin
apply plugin: 'io.fabric'

編集:このステップは最近ドキュメントに追加されたようです(ステップ2 /パート2を参照)。

8
Amr Saleh

デバッグビルドに不正なFabric.with()イニシャライザーを使用したことが原因で、この問題に遭遇しました。

使用しないでください:

// Set up Crashlytics, disabled for debug builds
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, new Crashlytics()); // WRONG!

代わりに使用:

// Set up Crashlytics, disabled for debug builds
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); // Correct initializer!

ドキュメント: https://docs.fabric.io/Android/crashlytics/build-tools.html#disable-crashlytics-for-debug-builds

2
Sakiboy

他のFirebaseのAPIを使用する場合は、セットアップすることをお勧めしますcrashlytics
Firebaseのcrashlyticsページで述べたように、 here

そして明らかにその前に、あなたはあなたのアプリのためにファイヤーベースをセットアップする必要があるでしょう
Firebaseコンソールからプロジェクトを作成します。
あなたはすでにそれをしたと思います。

これは、これら2つのページ(fabricとfirebase)でcrashlyticsのセットアップにわずかな違いがあるためです。
firebaseのcrashlyticsと同様:
アプリレベルのgradle

dependencies {
    // ...
    implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.3'
}

ファブリック上:

dependencies {
    // ...
      implementation('com.crashlytics.sdk.Android:crashlytics:2.9.4@aar') {
    transitive = true;
  }
}

Firebaseを使用している場合、マニフェストを介してファブリックAPIキーを追加する必要はありません。
これは私の経験から言っていますが、どこか間違っている場合は誰でも修正してくれます。

1
Man

プロジェクトの依存関係を更新

1. Crashlyticsリポジトリと依存関係をプロジェクトレベルのbuild.gradleファイルに追加します。

buildscript {
        repositories {
            // ...
            maven {
               url 'https://maven.fabric.io/public'
            }
        }
        dependencies {
            // ...
            classpath 'io.fabric.tools:gradle:1.25.4'
        }
    }

    allprojects {
        // ...
        repositories {
           // ...
           maven {
               url 'https://maven.google.com/'
           }
        }
    }

2. Firebase Crashlyticsのアプリの依存関係を更新するには、アプリレベルのbuild.gradleに次の変更を加えます。

apply plugin: 'com.Android.application'
/* Add the Fabric plugin: */
apply plugin: 'io.fabric'

dependencies {
  implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.3'
}
0
Viral Patel