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 ответов:
можете ли вы проверить свою версию 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 требует времени, чтобы предоставить нам доступ, просто подождите этого письма, возможно, эта проблема не связана с плохим кодом.