web-dev-qa-db-ja.com

Firebase APIの初期化エラーを解決する方法(Android + Firebase)

最近、プロジェクトでGoogle GCMを使用する必要がありました。その website から次のように言われています:

Firebase Cloud Messaging(FCM)は、GCMの新しいバージョンです。信頼性が高くスケーラブルなGCMインフラストラクチャと新しい機能を継承しています。詳細については、FAQを参照してください。新しいアプリにメッセージングを統合する場合は、FCMから始めます。 GCMユーザーは、現在および将来の新しいFCM機能を活用するために、FCMにアップグレードすることを強くお勧めします。

新しいFirebaseアプリケーションをセットアップするために、 公式Webサイト に記載されている指示に従って、次のことを行いました。

  1. Webコンソールで新しいFirebaseアプリを作成し、そこからjsonを取得しました-アプリの正しいパッケージを提供した後。
  2. 最上位プロジェクトのgradleファイルで、依存関係セクションにclasspath 'com.google.gms:google-services:3.0.0'を追加しました。
  3. 私のモジュールのgradleファイルにcompile 'com.google.firebase:firebase-core:9.0.0' compile 'com.google.firebase:firebase-messaging:9.0.0'を追加し、その最後の行にapply plugin: 'com.google.gms.google-services';を追加しました。

完全なGradleファイルは以下に提供されています:

最上位のgradleファイル:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.1.0'
        classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.7'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

モジュールのgradleファイル:

apply plugin: 'com.Android.application'
apply plugin: 'com.neenbedankt.Android-apt'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    dexOptions {
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "br.com.gogame"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    useLibrary  'org.Apache.http.legacy'
}

dependencies {
    ...
    compile 'com.google.firebase:firebase-core:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    ...
}

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

アプリを起動すると、次のスタックトレースが取得されます。

05-23 14:04:55.109 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzd>
05-23 14:04:55.109 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzd>
05-23 14:04:55.110 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzc>
05-23 14:04:55.110 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzc>
05-23 14:04:55.126 13368-13368/br.com.gogame E/FirebaseApp: Firebase API initialization failure.
                                                            Java.lang.reflect.InvocationTargetException
                                                                at Java.lang.reflect.Method.invoke(Native Method)
                                                                at com.google.firebase.FirebaseApp.zza(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748)
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                at Android.app.ActivityThread.installProvider(ActivityThread.Java:5174)
                                                                at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4769)
                                                                at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4709)
                                                                at Android.app.ActivityThread.-wrap1(ActivityThread.Java)
                                                                at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1415)
                                                                at Android.os.Handler.dispatchMessage(Handler.Java:102)
                                                                at Android.os.Looper.loop(Looper.Java:148)
                                                                at Android.app.ActivityThread.main(ActivityThread.Java:5443)
                                                                at Java.lang.reflect.Method.invoke(Native Method)
                                                                at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728)
                                                                at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618)
                                                             Caused by: Java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/Android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.Android.gms.common.internal.zzx' appears in /data/app/br.com.gogame-2/base.apk:classes26.dex)
                                                                at com.google.Android.gms.measurement.internal.zzt.zzaU(Unknown Source)
                                                                at com.google.Android.gms.measurement.AppMeasurement.getInstance(Unknown Source)
                                                                at Java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.google.firebase.FirebaseApp.zza(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source) 
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748) 
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723) 
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                                                                at Android.app.ActivityThread.installProvider(ActivityThread.Java:5174) 
                                                                at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4769) 
                                                                at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4709) 
                                                                at Android.app.ActivityThread.-wrap1(ActivityThread.Java) 
                                                                at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1415) 
                                                                at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                                                                at Android.os.Looper.loop(Looper.Java:148) 
                                                                at Android.app.ActivityThread.main(ActivityThread.Java:5443) 
                                                                at Java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728) 
                                                                at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618) 
05-23 14:04:55.131 13368-13368/br.com.gogame I/FirebaseInitProvider: FirebaseApp initialization successful
05-23 14:04:55.133 13368-13368/br.com.gogame E/AndroidRuntime: FATAL EXCEPTION: main
                                                               Process: br.com.gogame, PID: 13368
                                                               Java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/Android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.Android.gms.common.internal.zzx' appears in /data/app/br.com.gogame-2/base.apk:classes26.dex)
                                                                   at com.google.Android.gms.measurement.internal.zzt.zzaU(Unknown Source)
                                                                   at com.google.Android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
                                                                   at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748)
                                                                   at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)
                                                                   at Android.app.ActivityThread.installProvider(ActivityThread.Java:5174)
                                                                   at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4769)
                                                                   at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4709)
                                                                   at Android.app.ActivityThread.-wrap1(ActivityThread.Java)
                                                                   at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1415)
                                                                   at Android.os.Handler.dispatchMessage(Handler.Java:102)
                                                                   at Android.os.Looper.loop(Looper.Java:148)
                                                                   at Android.app.ActivityThread.main(ActivityThread.Java:5443)
                                                                   at Java.lang.reflect.Method.invoke(Native Method)
                                                                   at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728)
                                                                   at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618)

この問題を解決するための助けをいただければ幸いです!よろしく

よく、多くの苦労の後、私は私の問題の原因を見つけました。基本的に2つのライブラリモジュールがありました-たまたま自分のものでした-それぞれが異なるバージョンのcom.Android.support:appcompat-v7.*とgoogle playサービスをインポートします。それらのすべてに同じバージョンをインポートさせ、問題はなくなりました。

Firebase-coreのアップグレードで解決した同じエラーに遭遇しました:

dependencies {    
    compile 'com.google.firebase:firebase-core:9.0.2'
}
19
scoding

すべての依存関係に同じバージョンが必要であることを確認してください

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', 
    {
      exclude group: 'com.Android.support', module: 'support-annotations'
    })
    implementation 'com.Android.support:appcompat-v7:25.2.0'
    implementation 'com.Android.support:design:25.2.0'
    implementation 'com.Android.support:support-v4:25.2.0'
    implementation 'com.google.firebase:firebase-auth:10.0.1'
    implementation 'com.Android.support:cardview-v7:25.2.0'
    implementation 'com.google.firebase:firebase-database:10.0.1'
    testCompile 'junit:junit:4.12'
}
9
Harpreet Singh

私は同じ問題に直面しましたが、いくつかの研究開発の後、私は問題がGradleにあることを知りました

「com.Android.support:support-v4:+」をコンパイルします


その後、+を削除して実際のバージョンを置き換えただけです。

「com.Android.support:support-v4:23.1.0」をコンパイルします


それから動作し始めました

3
sunil KV

私の場合、モジュールの依存関係内に「apply plugin: 'com.google.gms.google-services'」を配置したために問題が発生します。build.grandleは、ファイルの最後に配置します。

1
TmCrafz

Play-services-auth:10.0.1にアップグレードすることで修正された同じ問題がありました。

dependencies {
    ......
    //implementation 'com.google.Android.gms:play-services-auth:9.0.0'
    implementation 'com.google.Android.gms:play-services-auth:10.0.1'
    ....
}
1
User9527

私にとって完全に無関係なインポートは、このエラーをコンパイルしました 'com.aurelhubert:ahbottomnavigation:1.3.3'

1
Jaad Chacra

Gradleコマンドで依存関係を確認できます

./gradlew app:dependencies

エドガーが言ったように、すべての依存ライブラリのバージョンが同じであることを確認してください。そうでない場合は、次を使用してその依存関係を除外できます

compile('your dependency') {
    exclude group: 'lib to be removed'
}

そして、その依存関係を自分で追加します。

0
Harish Rana

compile 'com.google.Android.gms:play-services:9.0.0'をアプリレベルのbuild.gradleファイルに追加します

0

私は、依存関係のバージョンが同じであるため、一晩中苦労しました。 Firebase Analyticsを追加した後、コードを編集してデバイスで実行すると、アプリがクラッシュしました以前に失敗したクラスcom.google.Android.gmsで再初期化を拒否します...プロジェクトをクリーンアップして再度実行する必要がありますが、正常に機能しましたが、コードを編集すると再びクラッシュします。

私の問題は、このガイドに従った「useProguard false」が原因でした https://developer.Android.com/studio/build/shrink-code.html

    debug {
        minifyEnabled true
        useProguard false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                'proguard-rules.pro'
    }

しかし、私はInstant Runを無効にしたので、remove "useProguard false"は私の問題を修正しました。

    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                'proguard-rules.pro'
    }
0
BabyJust

初心者向けのより完全な回答。 @エドガーは正しいです、ありがとう!

エラー:「Firebase APIの初期化エラー」は、Android Monitorのlogcatにあります。ライブラリのバージョンに互換性がないためです。また、プロジェクトパースペクティブでアプリをコンパイルする任意のライブラリを使用できます:移動:Your-app-directory/app/build.gradle

私の場合、これら2つのモジュールバージョンを一致させる必要があり、このエラーメッセージを解決しました。

implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-appindexing:16.0.1'

ここにスクリーンショットを添付して、すべてを見ることができます。

enter image description here

0
Dung

私の場合、アプリレベルビルドでこれを追加するのを忘れました

implementation 'com.google.firebase:firebase-messaging:9.6.0'

だから私はFireBase fiを手に入れましたrebase-api-initialization-failure