Firebase认证无法工作 - 模拟器(Android)上出现“更新Google Play服务”消息

21

我正在尝试使用Firebase Auth服务来验证电子邮件和密码。当我点击注册时,模拟器上会弹出一个警告框,内容如下:

"Update Google Play services : Firebase Auth won't run unless you update Google Play services"

当我查看日志时,我可以读到以下两行内容:
DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
GooglePlayServicesUtil: Google Play services out of date. Requires 9256000 but found 9080480 

在SDK管理器中,Google Play服务已经是最新版本。我怀疑问题出在模拟器上,它可能没有更新到最新版本。我正在使用的模拟器是:Nexus 5X API 21(带有Google API)。你有什么想法吗?谢谢!

今天的更新刚刚解决了那个问题。 - Androiderson
你如何“查看日志”? - Quigi
4个回答

28

您在帖子中提到:“在SDK管理器中,Google Play服务已经更新到最新版本。”

在独立的SDK管理器底部“Extras”部分显示的Google Play服务版本不会影响模拟器使用的版本。 模拟器运行在配置为包含某个特定版本Play Services的系统映像上,该版本不一定是最新的。

您应该确认已下载了最新的模拟器映像。 这些映像在每个API级别下列在独立SDK管理器中,并以“系统映像”结尾的名称显示。请仔细检查是否下载了“Google APIs ... System Image”的最新版本文件。 然后,您需要重新创建模拟器以使用更新的映像。

在看到您的问题之前,我没有安装最新版本并尝试在Nexus 5X API 21模拟器上运行Firebase Auth 9.0.2。 它失败并出现了类似于您报告的消息。 然后,我下载了最新的映像(rev 12),现在能够成功运行。


谢谢你提供这些详细信息。我之前并不知道这些。根据你的建议,我在独立的SDK管理器中安装了Google API系统镜像,包括API 23、22和21,然后重新创建了一个模拟器,但仍然无法正常工作。以下是我的日志副本,如果你能帮我调试一下就太好了。http://pastebin.com/aY4dJrVh 谢谢! - raphh
1
你正在使用Firebase 9.2.0版本构建应用程序,是吗?它似乎需要Google Play服务9.2.56,但我尝试的API 21模拟器镜像中没有该版本。我认为你唯一的选择是降级到Firebase 9.0.2或等待包含GPS 9.2.56的新模拟器镜像发布。 - Bob Snyder
有没有一个地方可以浏览Firebase for Android库的完整版本历史记录?它们似乎没有列在bintray/jcenter网站上。 - Ankur
@Ankur:我不知道。 - Bob Snyder
1
我打开了Firebase 9.0.2,它似乎可以在API 21模拟器上工作。感谢@qbix的帮助! - raphh

8

未来遇到这种问题的最佳解决方式是。

打开模拟器,进入设置 > 应用 > Google Play 服务

您将找到您的 AVD 正在使用哪个版本

play_services_version

现在您知道 AVD 正在使用的版本号,只需在 gradle 中使用任何等于或低于该版本号的版本即可

dependencies {

    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:design:24.0.0'
    // Fire base
    compile 'com.google.firebase:firebase-auth:9.0.1'
    compile 'com.google.firebase:firebase-database:9.0.1'
    compile 'com.google.android.gms:play-services-auth:9.0.1'
}

apply plugin: 'com.google.gms.google-services'

这对我有用,希望能帮到你!

1
如果您将 build.gradle 中的文本复制并粘贴到代码块中,那么这个答案会更好。这样其他人就可以立即看到它,复制并粘贴它,而且它也不会出现链接失效的情况。 - Noumenon
这是否意味着我的应用程序使用com.google.firebase:firebas-.auth:11.0.1版本将无法在安装有Google Play服务9.0.1的设备上运行? - valerybodak
1
这是针对AVD的问题:Firebase身份验证不起作用 - 在"模拟器"上出现“更新Google Play服务”的消息。 - Adliano Alves

0
我通过更新谷歌游戏服务来解决了这个问题。 最初版本为8.0,我将其更新到11.0。

-1

只需前往manifest.xml和gradle构建,将minSDKversion设置为15即可解决我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接