Programing

Android Firebase DynamiteModule : 모듈 설명자를로드하지 못했습니다.

lottogame 2020. 11. 6. 07:45
반응형

Android Firebase DynamiteModule : 모듈 설명자를로드하지 못했습니다.


최신 버전의 Firebase (9.0.0)로 업그레이드 한 이후 .NET을 통해 사용자를 인증 할 때 다음 두 가지 오류를 제거 할 수 없습니다 signInWithEmailAndPassword(). 무슨 일이 일어나고 있는지 아는 사람이 있습니까?

    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) 

(...)

Google Play 서비스 버전을 확인할 수 있습니까?

Firebase 공식 웹 사이트에서 :

전제 조건

  • Google Play 서비스 9.0.0 이상을 실행하는 Android 기기
  • Android SDK Manager의 Google Play 서비스 SDK
  • Android Studio 1.5 이상
  • Android Studio 프로젝트 및 패키지 이름.

나는 같은 문제가 있었고 내 Firebase 콘솔에서 실수를 발견했습니다.

이 문제의 원인 중 하나는 Firebase> 인증 대시 보드 내의 로그인 방법 이 사용 중지되었을 수 있습니다.

방금 활성화했고 작동하기 시작했습니다.


Firebase 초기화 오류가 그렇게 간단하지 않기 때문에 개발자는 무엇이 잘못되었는지 추측해야합니다. 제 경우에는 다음 만 가져 왔습니다.

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

코어도 가져 오는 것을 잊었습니다.

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

누군가에게 도움이 될 것입니다. 행운을 빕니다!


문제를 발견했습니다. 이 문제는 Guilherme가 언급 한 첫 번째 전제 조건 이었지만 굵은 부분은 아닙니다. 종속성도 플레이 서비스 부분의 9. +를 명시 적으로 명시해야하지만 장치 자체에도 9. +가 설치되어 있어야 합니다. 내 전화에서 디버깅이 잘 작동하고 내 에뮬레이터의 이미지를 업데이트하면 문제도 해결됩니다.


Disabling Instant Run worked for me. Sounds ridiculous, I know. I tried cleaning the project. I tried uninstalling/reinstalling the app. The thing that finally did the trick was disabling Instant Run. sigh


I logged out and then logged in and it solved this problem for me.

Probably from some kind of synchronization the FB stuff have not implemented.

If this problem consist I will try to intercept it. But reallly, this is a bug in Firebase system. And It is a bug that is caused by more than one use case, which is another issue on its own.


You can check out while adding google sign in option Before we use

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

add one line as show in the following code

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

after adding this if you get the error like

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

then Click here to get solution this works for me.


If you just want to use the Firebase authentication and you got here because of the error:

Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"

Go to https://console.firebase.google.com/project/[your project]/authentication/providers and enable the authentication providers you support.


I had similar issue with signup the user but finally found a working solution.

Uninstall the HAXM and reinstall it solves my issue and it successfully signup's the user to firebase auth :)


This answer on another question made my app authenticate

Alfonso Gomez Jordana Manas

Hello Pierre,

You have to manually whitelist your existing Google OAuth 2.0 client IDs in the Firebase console before using it with the new Auth APIs.

In order to do so, follow these steps:

  • Go to the Credentials section in the Google API Console.
  • Select from the top right corner the project where you had previously configured Google Sign-In.
  • Go to the OAuth 2.0 client IDs section If you are using Google Sign-In on Android or iOS applications: Take note of the Client ID string corresponding to all the entries registered for your applications.
  • Input these Client IDs into your Firebase project’s configuration:
  • Go to the Firebase console at https://console.firebase.google.com
  • Open the Auth section

    Under Sign-In methods, open the Google configuration, and add all your client IDs to the whitelist of client IDs from external projects. If you are using Google Sign-In on a web application: Click to open your web client ID and take note of both the client ID and secret. Input this Client ID into your Firebase project’s configuration: Go to the Firebase console at https://console.firebase.google.com Open the Auth section Under Sign-In methods, open the Google configuration, and add the values under the Web SDK configuration section.

Let me know if this resolves your issue.


if you do everything but you got nothing try to update your ARM EABI.

Google APIs ARM EABI v7a System Image

If your emulator has not new goggle updates you will get always auth error.

Do everything suggested in this post then update ARM EABI image. This solved my problem.


It may also happen when you don't have the SHA1 fingerprints registered in Firebase and in Google API. There in both of them must register two fingerprints: from the debug keystore and from the production keystore (generated when you create the project's apk for the first time when you enter some password keys on Android Studio).

Here shows how to get the SHA1 from there.

or run this command on C:\Users\<user name>\.android directory.

keytool -list -v -keystore debug.keystore

Sharing my experience: I faced the same issue, I googled everywhere but couldn't find the exact answer, even if I was doing everything as documented by Google Android documentation. Suddenly after a day, my app was working fine and at that same moment I got the email from google stating "Google APIs Explorer connected to your Google Account". And it looks to me that google takes time to grant us access, just wait for this email, maybe this issue is not related to bad code.

참고URL : https://stackoverflow.com/questions/37328890/android-firebase-dynamitemodule-failed-to-load-module-descriptor

반응형