在安卓上使用Firebase Analytics时出现SERVICE_VERSION_UPDATE_REQUIRED错误

14

我希望在我的项目中集成Firebase Analytics。

我遵循了指南,但它给出了这个警告:

06-30 18:38:30.514 W/FA      ( 2091): Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
06-30 18:38:30.888 W/FA      ( 2091): Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
06-30 18:38:32.306 W/FA      ( 2091): Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
06-30 18:38:32.338 W/FA      ( 2091): Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
06-30 18:38:32.661 W/FA      ( 2091): Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
06-30 18:39:32.680 W/FA      ( 2091): Tasks have been queued for a long time

我的项目版本是:

ext {
minSdkVersion = 17
targetSdkVersion = 23
compileSdkVersion = 23
compileSdkVersionS = 'Google Inc.:Google APIs:23'
supportVersion = '24.0.0'
buildToolsVersion = '23.0.2'
sourceCompatibilityVersion = JavaVersion.VERSION_1_7
targetCompatibilityVersion = JavaVersion.VERSION_1_7
gradleVersion = '2.1.2'
playServicesVersion = '9.2.0'
gsonVersion = '2.3'}

日志通过打印输出

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

我认为我现在使用的版本已经足够好了,但是仍然出现错误信息,有没有人能给我一些提示?


警告可能表明您的Google Play服务需要更新。 您是否还看到一条警告消息,指出“Google Play服务已过期”? 您正在模拟器上运行吗? 我设备上的GPS版本是9.2.56。 - Bob Snyder
  1. 我没有看到任何警告信息。
  2. 它正在运行在实际的设备上。那么我该怎么更新手机上的Google Play服务呢?
- Damon Yuan
您可以通过进入“设置/应用程序管理器”并查找Google Play服务来查看已安装的版本号。当前版本为9.2.56。您可以通过调用GoogleApiAvalability.GOOGLE_PLAY_SERVICES_VERSION_CODE从代码中获取已安装的版本号。如果您安装的版本不是最新版本,则可以从Google Play商店更新。 - Bob Snyder
我遇到了同样的问题,但API似乎没有返回PendingIntent以解决该问题。这很奇怪,因为我的用户不知道该怎么做!有什么想法可以向应用程序用户提供适当的反馈吗? - Niels
2个回答

10
在对问题进行评论后(参见上文),我在装有旧版 Google Play 服务的仿真器上运行了一个使用 Firebase 9.2.0 构建的应用程序。使用问题中发布的adb命令,我看到了与该问题中包含的相同警告信息。同时,在正常的logcat输出中也包括以下消息:
W/GooglePlayServicesUtil: Google Play services out of date.  Requires 9256000 but found 9080030

您需要在设备上更新Google Play服务。如果您正在运行Firebase 9.2.0,则所需的Play服务版本为9.2.56。


在生产设备上运行时,有没有一种方法可以捕获/检测此错误?当手动连接Google Play服务API时,可以使用[https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener#onConnectionFailed(com.google.android.gms.common.ConnectionResult))]来实现这一目的,但Firebase似乎在幕后进行连接尝试。许多现场设备正在运行过时的Google Play服务,因此以程序方式捕获此错误并向用户建议更新至关重要。 - CCJ
1
@CCJ:使用GoogleApiAvailability的方法,特别是isGooglePlayServicesAvailable() - Bob Snyder
啊,好的。该方法的文本内容为“验证此设备上是否已安装并启用了Google Play服务,并且此设备上安装的版本不早于此客户端所需的版本”——他们指的是哪个客户端?所需版本不应该特定于给定的Google Play服务API吗?如果是这样,我如何将此方法应用于Firebase Analytics所需的API,以确保Firebase的API连接尝试不会导致SERVICE_VERSION_UPDATE_REQUIRED状态? - CCJ

0

这个消息意味着您需要在设备上更新Google Play Store应用程序。

如果您正在使用Android Studio模拟器:

  1. 通过单击控制菜单底部的3个点打开扩展控件
  2. 选择Google Play
  3. 点击更新
  4. 在模拟器内,单击“更新”按钮

下载并安装新版本后,此错误将消失。


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