Android Firebase DynamiteModule: не удалось загрузить дескриптор модуля


С момента обновления до последней версии Firebase (9.0.0), я не могу избавиться от следующих двух ошибок при аутентификации пользователя через 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) 

(...)
13 68

13 ответов:

можете ли вы проверить свою версию Google Play Services?

с официальной огневой базы сайт:

предпосылки

  • Android устройство работает Google Play services 9.0.0 или позднее
  • Google Play services SDK от Android SDK Manager
  • Android Studio 1.5 или выше
  • проект Android Studio и его имя пакета.

У меня была та же проблема, и я нашел ошибку, сделанную мной в моей консоли Firebase.

одна из причин этой проблемы может быть, ваш войдите в способ внутри опорного пункта > Панель управления авт может быть отключен.

Я просто включил его и он начал работать.

очень печально, что ошибки инициализации Firebase настолько не просты, поэтому разработчикам нужно угадать, что пошло не так. В моем случае я импортировал только:

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

и забыл импортировать также ядро:

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

может быть, это поможет кому-то, удачи!

Я нашел проблему. Этот вопрос был первым условием, о котором упомянул Гильерме, но не смелой частью.. Хотя ваши зависимости также должны явно указывать 9.+ части play services,сами устройства также должны иметь 9.+ установлен. Отладка на моем телефоне отлично работает, и обновление образа моего эмулятора также решает проблему.

отключение мгновенного запуска сработало для меня. Звучит нелепо, я знаю. Я попытался очистить проект. Я попытался удалить / переустановить приложение. То, что, наконец, сделало трюк, отключило мгновенный запуск. вздох

Я вышел из системы и затем войти в систему и решить эту проблему для меня.

вероятно, из какой-то синхронизации материал FB не реализован.

Если эта проблема состоит я попытаюсь ее перехватить. Но на самом деле, это ошибка в системе Firebase. И это ошибка, вызванная более чем одним случаем использования, что само по себе является еще одной проблемой.

вы можете проверить при добавлении опции входа в google Прежде чем мы используем

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

добавить одну строку, как показано в следующем коде

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. ]

затем клик здесь, чтобы получить решение это работает для меня.

Если вы просто хотите использовать аутентификацию Firebase, и вы попали сюда из-за ошибки:

не нашел класс "ком.Гугл.андроид.ГМС.динамит.дескрипторы.ком.Гугл.опорному пункту.авт.ModuleDescriptor"

перейти к https://console.firebase.google.com/project/[ваш проект]/проверка подлинности/поставщиков и включите поставщиков проверки подлинности, которые вы поддерживаете.

У меня была аналогичная проблема с регистрацией пользователя, но, наконец, нашел рабочее решение.

удалите HAXM и переустановите его решает мою проблему, и он успешно регистрируется Пользователем в firebase auth :)

этот ответ на другой вопрос заставил мое приложение аутентифицировать

Альфонсо Гомес Джордана Манас

Привет Пьер,

вы должны вручную белый список существующих идентификаторов клиентов Google OAuth 2.0 в консоли Firebase перед использованием его с новыми API Auth.

для этого выполните следующие действия:

  • перейдите в раздел Учетные данные в консоли Google API.
  • выберите в правом верхнем углу проект, в котором ранее был настроен вход в систему Google.
  • перейдите в раздел идентификаторы клиентов OAuth 2.0 Если вы используете Google вход в приложения для Android или iOS: Обратите внимание на строку идентификатора клиента, соответствующую всем записям, зарегистрированным для ваших приложений.
  • введите эти идентификаторы клиента в конфигурацию вашего проекта Firebase:
  • перейдите на консоль Firebase по адресу https://console.firebase.google.com
  • откройте раздел Auth

    В разделе методы входа откройте конфигурацию Google и добавьте все идентификаторы клиентов в белый список идентификаторов клиентов из внешних проектов. Если вы используете Google вход в веб-приложение: Нажмите, чтобы открыть идентификатор веб-клиента и принять к сведению как идентификатор клиента, так и секрет. Введите этот идентификатор клиента в конфигурацию проекта Firebase: Заходим в консоль опорному пункту в https://console.firebase.google.com Откройте раздел Auth В разделе методы входа откройте конфигурацию Google и добавьте значения в разделе Конфигурация Web SDK.

Дайте мне знать, если это решит вашу проблему.

Если вы делаете все, но у вас ничего нет, попробуйте обновить свою руку EABI.

Google APIs ARM EABI v7a System Image

Если в вашем эмуляторе нет новых обновлений goggle, вы всегда получите ошибку auth.

сделайте все, что предлагается в этом посте, а затем обновите изображение ARM EABI. Это решило мою проблему.

Это также может произойти, когда у вас нет отпечатков пальцев SHA1, зарегистрированных в Firebase и в Google API. Там в обоих из них необходимо зарегистрировать два отпечатка пальцев: из хранилища ключей отладки и из хранилища ключей производства (генерируется при создании apk проекта в первый раз, когда вы вводите некоторые ключи пароля на Android Studio).

здесь показывает, как получить SHA1 оттуда.

или выполните эту команду на

делюсь своим опытом: Я столкнулся с той же проблемой, я искал везде, но не мог найти точный ответ, даже если я делал все, как описано в документации Google Android. Внезапно через день мое приложение работало нормально, и в тот же момент я получил электронное письмо от google, в котором говорилось: "Google APIs Explorer подключен к вашей учетной записи Google". И мне кажется, что google требует времени, чтобы предоставить нам доступ, просто подождите этого письма, возможно, эта проблема не связана с плохим кодом.