谷歌游戏服务已过期。需要3159100,但发现只有3158130。

17

在SDK工具中,Google Play服务已更新到版本9(3159100版),但Google Api(API 17)仍为版本3,因此仅包含Google Play服务版本3158130。

如何解决这个问题?

LogCat消息 Google Play服务过期。 需要3159100,但找到3158130

提前致谢


你是在模拟器上测试吗? - Chetna
是的,我正在使用4.2.2版本。 - Devendar
你实际上使用的是什么服务?是 Google 地图 V2 吗? - Chetna
是的,Google API 等级为 18。 - Devendar
10个回答

18
这是一个与谷歌相关的问题,当您更新到SDK 18(果冻豆4.3)时会出现此问题(现已通过2013年10月21日的更新得到解决-请参见下文)

https://code.google.com/p/android/issues/detail?id=57880#makechanges

如果您正在运行Google Play服务,则会影响4.2.2和4.3的Google API模拟器。

我不对解决方法或“非官方”解决方案感兴趣。这是由Google引起的错误,所以我将等待他们来修复它。当他们这样做时,我会把这个回答变成一个适当的“答案”。

这是在2013年7月26日收到的:

在57880问题上第13条评论,作者为sba...@google.com:google play services已更新但AVD未更新http://code.google.com/p/android/issues/detail?id=57880

我们正在处理这个问题。除了令人恼火的含糊不清的“很快”之外,我还没有估计时间。

这是在2013年8月1日收到的:

更新: 状态:已分配 所有者:sba...@google.com

在问题57880上的第18条评论,来自sba...@google.com:Google Play服务已更新,但AVD未更新http://code.google.com/p/android/issues/detail?id=57880

Play Services团队已经知道这个问题,并正在高优先级下解决它。此修复程序将在同一时间段内的相同模拟器映像中进行。抱歉我不能告诉你何时会发布;我不想告诉你什么,然后我们错过了它。我会在我知道更多信息时更新这个错误。

这是关于这个问题的最终更新(收到于2013年10月21日)。这个修复程序在4.3上运行良好-我还没有尝试其他口味的果冻豆。

android@googlecode.com通过codesite.bounces.google.com发送,10月21日

发给我的更新: 状态:已发布

在问题57880上的第45条评论,来自sba...@google.com:Google Play服务已更新,但AVD没有更新。 http://code.google.com/p/android/issues/detail?id=57880


16

您可能希望在运行时检查设备上的Google Play服务是否是最新的。如果不是,只需显示相应的错误对话框,提示用户更新即可。

private boolean isGooglePlayServicesAvailable() {
        GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
        Integer resultCode = googleApiAvailability.isGooglePlayServicesAvailable(mContext);
        if (resultCode != ConnectionResult.SUCCESS) {
            Dialog dialog = googleApiAvailability.getErrorDialog(this, resultCode, 0);
            if (dialog != null) {
                dialog.show();
            }
            return false;
        }
        return true;
    }

详情请查看文档:http://developer.android.com/google/play-services/setup.html


@Nerkatel - 感谢您提供的信息。但是我尝试更新我的SDK很多次,但仍然显示相同的内容。 - Devendar
我不行,但我猜你可以。 - Chetna
我不确定,但我认为https://dev59.com/NmUp5IYBdhLWcg3woonS和http://stackoverflow.com/questions/15171684/gmail-login-google-play-service-out-of-date以及https://dev59.com/Q3TYa4cB1Zd3GeqPvoNG都与你的问题有关。 - Chetna
@Chetna - 与我的问题无关...我甚至无法在SDK工具上看到更新 - Devendar
这是由Google引起的令人沮丧的问题。尽管更新了所有内容,我仍然得到相同的错误。问题是正确的,类似问题的旧答案不起作用。 - Bilbo Baggins
显示剩余2条评论

5

我自己也遇到了这个问题,并在这里找到了解决方案。对于我来说,它在目标API级别16上有效。因此,我建议您创建一个新的模拟器,目标为API级别16(Android版本4.1.2,非Google API),并在其上安装这些文件。这将使其成为Google API模拟器。以下是实际答案供参考。

最新的SDK工具破坏了此修复程序,导致出现错误:

"Google Play服务已过期。需要3159100但.."
这里是更新的gmsvending文件。与之前相同的说明:创建一个任何CPU / ABI的新模拟器,非Google API目标(版本10-17可用),打开或关闭GPU仿真,然后安装文件:

adb install com.android.vending-20130716.apk 
adb install com.google.android.gms-20130716.apk 

如果您正在升级现有的模拟器,则可能需要通过以下方式卸载先前的版本:

adb uninstall com.android.vending
adb uninstall com.google.android.gms

你的解决方案对我很有效。这些APK适用于API级别16。以下是APK的版本信息。包名:name='com.android.vending',版本号:versionCode='80210010',版本名称:versionName='4.1.10',以及包名:name='com.google.android.gms',版本号:versionCode='3159132',版本名称:versionName='3.1.59'。 - dbasch
设备上怎么样?我遇到了这个问题,但它发生在设备上,而我的设备已安装了最新的 Google Play 服务应用程序。因此,没有办法让烦人的提示消失,以便用户实际使用该应用程序。刚在这里发布了一个问题:http://stackoverflow.com/questions/18909278/google-play-services-out-of-date-on-device-not-ave-device-has-most-recent-ve - wkhatch

2

2

1
只需将最新版本的Google Play服务库中..\libs文件夹中的jar文件替换为旧版本的Google Play服务库..\libs文件夹中的jar文件即可。同样地,在..\bin文件夹中也需要进行相同操作。 在我的情况下,这样做起作用了。我使用的是Windows 7上的Android模拟器(API Level 8)。
附注:在执行这些教程中必要的操作后,我才执行了这些步骤: 1) https://blog-emildesign.rhcloud.com/?p=435 2) https://blog-emildesign.rhcloud.com/?p=527

0
int resultCode=GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this);
                switch (resultCode){
                    case 0:
                    proceedAfterPermission();
                    break;
                case 2:                                             
                    Toast.makeText(getApplicationContext(),"Update your Google APIS",Toast.LENGTH_SHORT).show();

0
请参考答案如何检查Google Play服务版本?
PS:
1. 在我的情况下,我不使用模拟器,但希望它能够有所帮助。
2. 它可以帮助避免由mMap = mapFragment.getMap();引起的“NullPointer错误”导致应用程序崩溃,但是仍然需要自己解决如何更新模拟器中的谷歌播放服务问题。

0

我也遇到过同样的问题。 Google Maps Android V2 花了我很多时间。 但是幸运的是,我找到了一些 apk 文件,并希望与您分享。

com.android.vending pakage:
[3.9.16]
[4.3.11]

com.google.android.gms package
[3.1.36]
[3.2.25]
[3.2.65]
link folder for all packages

我在模拟器上测试了android api-16(4.1.2), api-17(4.2.2), api-18(4.3)。 它能够正常工作,地图被显示出来。


-1

我在最新版本的google-play-services - 9.0.0中遇到了非常相似的错误。

W/GooglePlayServicesUtil: Google Play服务已过期。需要9080000,但找到9078574

当我进入设置>关于>版本:点击查看>Google Play服务(点击版本号)时,穿戴设备拒绝更新Google Play服务。

我可以通过将可穿戴模块的build.gradle中使用的google-play-services版本降低一个版本(到8)来解决错误。

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

我发帖是为了看看是否有其他人也遇到了最新版本的类似问题。


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