自从升级到最新版本的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)
(...)
答案 0 :(得分:28)
我遇到了同样的问题,我在Firebase控制台中发现了一个错误。
出现此问题的原因之一可能是您在Firebase中的登录方法&gt;可能会禁用身份验证控制台。
我刚启用它并开始工作。
答案 1 :(得分:11)
您可以查看自己的Google Play服务版本吗?
来自Firebase oficial website:
<强>先决条件强>
答案 2 :(得分:3)
非常遗憾Firebase初始化错误并非如此简单,因此开发人员需要猜出出了什么问题。在我的情况下,我只导入:
compile 'com.google.firebase:firebase-auth:10.2.0'
并忘了导入核心:
compile 'com.google.firebase:firebase-core:10.2.0'
也许它会帮助别人,祝你好运!
答案 3 :(得分:1)
我发现了这个问题。问题是Guilherme提到的第一个先决条件,但不是粗体部分。虽然您的依赖关系还需要明确说明9. +的播放服务部分,设备本身也需要9. +已安装。在我的手机上进行调试工作正常,更新我的模拟器的图像也解决了问题。
答案 4 :(得分:1)
禁用即时运行对我有用。听起来很荒谬,我知道。我试过打扫这个项目。我尝试卸载/重新安装应用程序。最终成功的事情是禁用Instant Run。 叹息
答案 5 :(得分:1)
我已退出然后登录,它为我解决了这个问题。
可能从某种同步中FB的东西还没有实现。
如果这个问题包括在内,我将尝试拦截它。但实际上,这是Firebase系统中的一个错误。这是一个由多个用例引起的错误,这是另一个问题。
答案 6 :(得分:0)
另一个问题的答案使我的应用验证
Alfonso Gomez Jordana Manas
你好皮埃尔,
在将新的Auth API与新的Auth API一起使用之前,您必须在Firebase控制台中手动将现有的Google OAuth 2.0客户端ID列入白名单。
要执行此操作,请按以下步骤操作:
打开验证部分
在“登录”方法下,打开Google配置,并将所有客户端ID添加到外部项目的客户端ID白名单中。 如果您在网络应用程序上使用Google登录: 单击以打开您的Web客户端ID,并记下客户端ID和密码。 将此客户端ID输入Firebase项目的配置: 转到https://console.firebase.google.com的Firebase控制台 打开Auth部分 在“登录”方法下,打开Google配置,然后在“Web SDK配置”部分下添加值。
如果这可以解决您的问题,请告诉我。
答案 7 :(得分:0)
您可以在添加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. ]
然后Click来获取解决方案对我有用。
答案 8 :(得分:0)
如果您只想使用Firebase身份验证,并且因为错误而来到这里:
没找到上课 “com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor”
转到https://console.firebase.google.com/project/[your project]/authentication/providers并启用您支持的身份验证提供程序。
答案 9 :(得分:0)
我在注册用户时遇到了类似的问题,但最终找到了一个可行的解决方案。
卸载HAXM并重新安装解决了我的问题,并成功注册用户到firebase auth :)
答案 10 :(得分:0)
如果您做了所有事情,但没有尝试更新您的ARM EABI。
Google API ARM EABI v7a系统映像
如果您的模拟器没有新的护目镜更新,您将始终获得auth错误。
执行本文中建议的所有内容,然后更新ARM EABI图像。 这解决了我的问题。
答案 11 :(得分:0)
如果您没有在Firebase和Google API中注册SHA1指纹,也可能会发生这种情况。它们都必须注册两个指纹:来自调试密钥库和生产密钥库(当你在Android Studio上输入一些密码密钥时第一次创建项目的apk时生成)。
Here显示了如何从那里获取SHA1。
或在C:\Users\<user name>\.android
目录上运行此命令。
keytool -list -v -keystore debug.keystore
答案 12 :(得分:0)
分享我的经验: 我遇到了同样的问题,我在谷歌上搜索但找不到确切的答案,即使我正在做谷歌Android文档记录的所有内容。一天之后突然间,我的应用程序工作正常,同时我从谷歌收到了“Google API Explorer连接到您的Google帐户”的电子邮件。而且我认为谷歌需要时间来授予我们访问权限,只需等待这封电子邮件,也许这个问题与糟糕的代码无关。