Site icon Amelt.net

ReactNative:java.lang.NoSuchMethodError: No static method zzb

Amelt

Amelt

This post is also available in: 日本語 (Japanese)

ReactNativeでAndroidスマートフォンアプリを開発している際に下記のようなエラーに遭遇しましたので、対処方法をメモ代わりに書いています。
ReactNativeにFirebaseのサービスを組み込んだことが原因で起こったようです。

E/AndroidRuntime(24980): java.lang.NoSuchMethodError: No static method zzb(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzbr; or its super classes (declaration of 'com.google.android.gms.common.internal.zzbr' appears in /data/app/com.ideageneratorver2-1/base.apk)

ReactNativeは情報が少ないので毎度困ってしまいますが、調べてみると上記のエラー内容は、Google Play Services,Firebaseライブラリのcompileバージョンの組み合わせが原因のようです。

以下は、 プロジェクトフォルダ/android/build.gradle 内のコードです。最新版は 11.8.0 でしたが、他のプラグインとの組み合わせで Google Play Services,Firebaseライブラリ共に force を使って 11.0.0 に統一しています。
他に良い方法がありそうな感じはしますが、force を使って利用する Google Play Services,Firebaseライブラリ を指定しています。

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            url "$rootDir/../node_modules/react-native/android"
        }
        maven {
            url 'https://maven.google.com'
        } 
        configurations.all {
            resolutionStrategy {
                force "com.google.android.gms:play-services-ads:11.0.0"
                force "com.google.android.gms:play-services-base:11.0.0"
                force 'com.google.firebase:firebase-core:11.0.0'
                force 'com.google.firebase:firebase-crash:11.0.0'
                force 'com.google.firebase:firebase-auth:11.0.0'
                force 'com.google.firebase:firebase-common:11.0.0'
                force 'com.google.firebase:firebase-config:11.0.0'
                force 'com.google.firebase:firebase-messaging:11.0.0'
                force 'com.google.firebase:firebase-analytics:11.0.0'
             }
        }
    }
}