web-dev-qa-db-ja.com

Android Firebase DynamiteModule:モジュール記述子を読み込めませんでした

最新バージョンのFirebase(9.0.0)にアップグレードしてから、signInWithEmailAndPassword()を使ってユーザーを認証する際に次の2つのエラーを取り除くことはできません。何が起こっているのか誰かが考えを持っていますか?

    05-19 18:09:49.245 23550-23589/[PACKAGE] E/DynamiteModule: Failed to load 
    module descriptor class: Didn't find class 
    "com.google.Android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" 
on path: DexPathList[[Zip file 
"/data/app/[PACKAGE]-3/base.apk"],nativeLibraryDirectories=
[/data/app/[PACKAGE]-3/lib/x86, /vendor/lib, /system/lib]]

そして

    05-19 18:09:49.252 23550-23550/[PACKAGE] 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)

(...)    
Caused by: Java.lang.IncompatibleClassChangeError: The method 'Java.io.File Android.support.v4.content.ContextCompat.getNoBackupFilesDir(Android.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'com.google.firebase.iid.zzg' appears in /data/data/[PACKAGE]/files/instant-run/dex/slice-com.google.firebase-firebase-iid-9.0.0_95503dc60ed409569d1585da411de93e6c633bf7-classes.dex)
      at com.google.firebase.iid.zzg.zzeC(Unknown Source)
      at com.google.firebase.iid.zzg.<init>(Unknown Source)
      at com.google.firebase.iid.zzg.<init>(Unknown Source)
      at com.google.firebase.iid.zzd.zzb(Unknown Source)
      at com.google.firebase.iid.FirebaseInstanceId.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) 

(...)
69

Google Play Servicesのバージョンを確認できますか?

Firebase oficialから ウェブサイト

前提条件

  • Android搭載端末Google Play services 9.0.以降
  • Google PlayサービスAndroid SDKマネージャーからSDK
  • Android Studio 1.5以上
  • Android Studioプロジェクトとそのパッケージ名。

私は同じ問題を抱えていました、そして私は私のFirebaseコンソールで私がした間違いを見つけました。

この問題の理由の1つは、Firebase>認証ダッシュボード内のサインイン方法が無効になっている可能性があることです。

有効にしたところ、動作し始めました。

28
Chandra Sekhar

Firebaseの初期化エラーがそれほど簡単ではないことをとても悲しいので、開発者は何が悪かったのかを推測する必要があります。私の場合、私はインポートしました:

compile 'com.google.firebase:firebase-auth:10.2.0'

そしてコアもインポートするのを忘れていました:

compile 'com.google.firebase:firebase-core:10.2.0'

多分それは誰か、幸運を助けるでしょう!

3
Artyom Okun

私はログアウトしてからログインし、この問題を解決しました。

おそらく何らかの同期から、FBのものは実装されていません。

この問題が発生した場合は傍受します。しかし実際には、これはFirebaseシステムのバグです。そしてそれは複数のユースケースによって引き起こされるバグであり、それはそれ自体が別の問題です。

1
sivi

問題が見つかりました。この問題は、Guilhermeが言及した最初の前提条件であり、太字の部分ではありません。依存関係も、プレイサービス部分の9. +を明示する必要がありますが、デバイス自体にも9. +がインストールされている必要があります =。携帯電話でのデバッグは正常に機能し、エミュレーターのイメージを更新することで問題も解決します。

インスタントランを無効にするとうまくいきました。ばかげて聞こえます、私は知っています。私はプロジェクトを掃除してみました。アプリをアンインストール/再インストールしてみました。やっとトリックをしたことは、インスタントランを無効にすることでした。 ため息

1
Bill Mote

別の質問に対するこの回答により、アプリが認証されました

アルフォンソ・ゴメスJordana Manas

こんにちはピエール、

新しい認証APIで使用する前に、Firebase consoleで既存のGoogle OAuth 2.0クライアントIDを手動でホワイトリストに登録する必要があります。

そうするためには、これらのステップに従って下さい:

  • Google APIコンソールの[認証情報]セクションに移動します。
  • Googleサインインを以前に設定したプロジェクトを右上隅から選択します。
  • AndroidまたはiOSアプリケーションでGoogleサインインを使用している場合は、OAuth 2.0クライアントIDセクションに進みます。アプリケーションに登録されているすべてのエントリに対応するクライアントID文字列を書き留めます。
  • これらのクライアントIDをFirebaseプロジェクトの設定に入力してください。
  • https://console.firebase.google.com でFirebaseコンソールにアクセスします。
  • 認証セクションを開く

    [サインイン方法]で、Googleの設定を開き、すべてのクライアントIDを外部プロジェクトのクライアントIDのホワイトリストに追加します。ウェブアプリケーションでGoogleサインインを使用している場合:クリックしてウェブクライアントIDを開き、クライアントIDとシークレットの両方を書き留めます。このクライアントIDをFirebaseプロジェクトの設定に入力します。 https://console.firebase.google.com でFirebaseコンソールに移動します。[認証]セクションを開きます。サインイン方法で、Google設定を開き、Web SDK設定セクションの下に値を追加します。

これであなたの問題が解決するかどうか教えてください。

0
Gustav Larsson

私の経験を共有する:私は同じ問題に直面し、私はいたるところでグーグルしましたが、たとえ私がグーグルアンドロイドの文書によって文書化されたようにすべてをやっていたとしても、正確な答えを見つけることができませんでした。その日が経って突然、私のアプリは問題なく動作していたのと同時に、Googleから "Google API ExplorerがあなたのGoogleアカウントに接続されています"という電子メールが届きました。そして、グーグルが私達にアクセスを許可するのに時間がかかる、ちょうどこのEメールを待っているように思える、多分この問題は悪いコードに関連していない。

0
Django

ユーザーのサインアップについても同様の問題がありましたが、ついに実用的な解決策を見つけました。

HAXMをアンインストールして再インストールします私の問題を解決しました。それで正常にサインアップしてユーザーをfirebase auth :)にしました

Firebase認証を使いたいだけで、エラーのためにここに来た場合

クラス "com.google.Android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"が見つかりませんでした

https://console.firebase.google.com/project/[あなたのプロジェクト]/ authentication/provider に移動し、サポートしている認証プロバイダを有効にします。

0
TouchBoarder

すべてを実行しても何も得られない場合は、ARM EABIを更新しようとします。

Google API ARM EABI v7aシステムイメージ

あなたのエミュレータが新しいゴーグルアップデートを持っていないならば、あなたは常に認証エラーを得るでしょう。

この投稿で提案されたすべての操作を実行してからARM EABIイメージを更新します。これで私の問題は解決した。

0
Kaloglu

SHA1フィンガープリントがFirebaseとGoogle APIに登録されていない場合にも発生する可能性があります。どちらにも2つのフィンガープリントを登録する必要があります。デバッグキーストアとプロダクションキーストア(Android Studioでパスワードキーを初めて入力したときにプロジェクトのapkを初めて作成したときに生成されます)。

ここ はそこからSHA1を取得する方法を示しています。

またはC:\Users\<user name>\.Androidディレクトリでこのコマンドを実行してください。

keytool -list -v -keystore debug.keystore
0
Rinaldi Segecin

Googleサインインオプションを追加しながらチェックアウトできます

GoogleSignInOptions gso = new GoogleSignInOptions
                    .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestEmail()
                    .build();

次のコードのように1行追加します。

GoogleSignInOptions gso = new GoogleSignInOptions
                .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.default_web_client_id))
                .requestEmail()
                .build();

あなたがのようなエラーを取得した場合これを追加した後

An internal error has occured. [ Invalid Idp Response: id_token audience mismatch. ]

それでは クリック これで解決策が手に入ります。

0
K K