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) (...) 

Solutions Collecting From Web of "Android Firebase DynamiteModule: не удалось загрузить дескриптор модуля"

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

С официального сайта Firebase:

Предпосылки

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

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

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

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

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

Отключение Instant Run работало для меня. Звучит смешно, я знаю. Я пробовал очистить проект. Я попытался удалить / переустановить приложение. Дело в том, что, наконец, этот трюк был отключением Instant Run. вздох

Вы можете проверить при добавлении опции входа в 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, и вы попали сюда из-за ошибки:

Не удалось найти класс "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"

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

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

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

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

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

Привет, Пьер,

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

Чтобы сделать это, выполните следующие действия:

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

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

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

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

Google API ARM EABI v7a Системный образ

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

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

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

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

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

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

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

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

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

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