Android Google 播放服务坏了? isConnected() 抛出错误

Android Google Play Services Broken? isConnected() throws errors

自从更新了我的 SDK 管理器包后,我的 google 播放服务一直无法正常工作。

这导致我的三星 S5 运行 5.0、HTC One_M8 运行 5.0.1 和我的 Nexus 5 运行 6.0(Android M 预览)崩溃。

java.lang.IncompatibleClassChangeError: The method 'boolean com.google.android.gms.common.api.GoogleApiClient.isConnected()' was expected to be of type interface but instead was found to be of type virtual (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar) 

运行 Samsung Mega 运行 4.4.2 和 Nexus 4 运行 4.4.4 上的相同代码,我收到此错误。

java.lang.NoSuchMethodError: com.google.android.gms.common.api.GoogleApiClient.isConnected

这些错误仅在 SDK 管理器的最新更新后才开始发生,我非常定期地更新,在我注意到该问题之前的最后一次更新是在 2015 年 10 月 5 日。

当前SDK

更新前一切正常。有没有什么办法解决这一问题?我花了几个小时试图弄清楚我是否在某个地方搞砸了,但自上次运行以来,涉及 google 播放服务的项目没有任何变化。我已经与某人确认,使用与我正在使用的完全相同的代码库(我们使用 git)尚未更新他们的 SDK 包,我们的代码仍然适用于他。我可能不得不恢复我的 SDK 工具,因为如果它是一个错误,我不能简单地等待可能的修复。我收到的更新非常新,但我不是唯一遇到此问题的人....

关于如何解决这个问题有什么想法吗?

谢谢!

好的,我发现了我的问题所在。奇怪的是 GoogleApiClient 中的 isConnected() 方法会中断,而所有其他静态方法都可以毫无问题地调用。但是当你有一个 API 更新被宣布为 "breaking change" 时,你可能会希望事情不再有效。

好吧,在 10 月 7 日星期三,我注意到另一个更新,我终于有机会测试它并且问题不再存在。所以看起来这是他们 "breaking change" 中的一个错误。值得庆幸的是 Google 很快就解决了这个问题。但它现在有效。所以我基本上将我的代码恢复到以前的状态。干杯!