Android studio Android Wear:Google Play服务已经过时。需要x但找到y

Android studio Android Wear:Google Play服务已经过时。需要x但找到y,android-studio,google-play-services,wear-os,Android Studio,Google Play Services,Wear Os,我有一个Android Wear应用程序,我正试图从Eclipse迁移到Android Studio。它在我的LG G手表上工作(或多或少),但在我的Moto 360上运行时,我在logcat中得到以下信息: GooglePlayServicesUtil﹕ Google Play services out of date. Requires 6111000 but found 5091534 紧接着是与Google API客户端的连接已失败。在emulator上运行会给出类似的消息: Goo

我有一个Android Wear应用程序,我正试图从Eclipse迁移到Android Studio。它在我的LG G手表上工作(或多或少),但在我的Moto 360上运行时,我在logcat中得到以下信息:

GooglePlayServicesUtil﹕ Google Play services out of date.  Requires 6111000 but found 5091534
紧接着是
与Google API客户端的连接已失败
。在emulator上运行会给出类似的消息:

GooglePlayServicesUtil﹕ Google Play services out of date.  Requires 6111500 but found 5077534
让我感到奇怪的是,
要求的
版本在每种情况下都略有不同,但你就是这样

我在这里已经讨论过类似的问题,答案通常归结为确保模块的Gradle依赖项使用可穿戴的
播放服务
,而不仅仅是
播放服务
。我已经检查过了,它似乎是正确的;以下是我的build.gradle文件中的相关部分:

dependencies {
    compile project(':wearableCommon')
    compile 'com.google.android.support:wearable:+'
    compile 'com.google.android.gms:play-services-wearable:+'
}
请注意,
wearableCommon
是我自己的库,包含我在几个可穿戴项目中使用的代码,它不使用GMS

我尤其感到困扰的是,这在一台设备上有效,但在另一台设备上无效。如果我没有360的内部版本,我可能会在我的G手表上测试后发布这段代码。然后,我将尝试在野外调试这个程序,同时为数百名愤怒的360车主进行伤害控制。

最简单的“修复”:

将您的
play服务设置为可穿戴
,以便专门查找5.0.77

compile'com.google.android.gms:play-services-wearable:5.0.77'

更多信息:


我确实也有同样的问题。韦恩想帮我解决这个问题。如果您愿意,请加入讨论。

最近,谷歌Play服务的最新版本已在Android Wear设备上推出。play services wearable的最新SDK更新要求更新您的可穿戴设备,如您报告的错误消息所示。确保您的手机上安装了最新的伴侣应用程序,它也会将更新安装到您的可穿戴设备上。确保您的可穿戴设备与手机配对,否则手机将无法更新可穿戴设备

如果您的可穿戴设备与手机配对,这些设备将自动更新,应该不会出现问题


我不建议您将build.gradle硬编码为5.0.77,因为这样您就永远不会更新以使用新的API提供播放服务。

恕我直言,这不是生产应用程序的解决方案。问题并不是我的手表(或emulator-WTF)有过时的软件,而是这个应用程序将被分发给成千上万的用户。在现实世界中,并不是每个用户在任何时候都拥有所有软件的最新版本。如果某个人付费的应用程序在其GMS尚未同步的情况下根本无法运行,这是不可接受的。充其量,我必须输入代码来检查GMS版本是否正常——这实际上并不能修复它,只是让它不那么不透明地出现故障。我理解你在这里的担忧,但为了让应用程序进入用户的手表,它将通过Play Store和配套应用程序交付。包含谷歌Play服务最新版本的配套应用程序也将同时更新,因此不会有问题。因此,此问题不应影响普通用户通过Play Store下载,也不应通过ADB手动安装应用程序。如果您确实希望使用特定的已知版本,还可以将build.gradle版本修改为5.0+或5.0.77。但是你会错过任何发布的bug修复。但是你有能力决定什么是你可以接受的。谢谢。成功了。出现这个问题是因为android版本在wear(运行棒棒糖)和my phone(运行kitkat)中不匹配。