Google Play服务更新至版本13后,出现错误

我怎样才能解决这个错误?

由于:java.lang.illegalargumentexception 11-01 11:08:12.845:E / AndroidRuntime(28885):引起:java.lang.IllegalStateException:应用程序的AndroidManifest.xml中的元数据标记没有正确的值。 预计4030500,但发现0.您必须在元素中有以下声明:

google-play-services_lib清单:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.gms" android:versionCode="4030530" android:versionName="4.0.30 (889083-30)" > <uses-sdk android:minSdkVersion="8"/> </manifest> 

 public void loginGooglePlus() { aHelper.setup(this, GameHelper.CLIENT_APPSTATE | GameHelper.CLIENT_GAMES); mHelper = aHelper.getAppStateClient(); //crash is here mHelper.connect(); } 

完整的错误日志:

 11-01 11:38:13.507: E/AndroidRuntime(31297): FATAL EXCEPTION: main 11-01 11:38:13.507: E/AndroidRuntime(31297): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.application.android.aja/com.company.application.android.aja.BeetleBattleAndroidActivity}: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2077) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.access$600(ActivityThread.java:134) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.os.Handler.dispatchMessage(Handler.java:99) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.os.Looper.loop(Looper.java:154) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.main(ActivityThread.java:4624) 11-01 11:38:13.507: E/AndroidRuntime(31297): at java.lang.reflect.Method.invokeNative(Native Method) 11-01 11:38:13.507: E/AndroidRuntime(31297): at java.lang.reflect.Method.invoke(Method.java:511) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:965) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:732) 11-01 11:38:13.507: E/AndroidRuntime(31297): at dalvik.system.NativeStart.main(Native Method) 11-01 11:38:13.507: E/AndroidRuntime(31297): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.internal.de.connect(Unknown Source) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.appstate.AppStateClient.connect(Unknown Source) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.company.application.android.aja.BeetleBattleAndroidActivity.loginGooglePlus(BeetleBattleAndroidActivity.java:153) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.company.application.android.aja.BeetleBattleAndroidActivity.onCreate(BeetleBattleAndroidActivity.java:143) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.Activity.performCreate(Activity.java:4509) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041) 11-01 11:38:13.507: E/AndroidRuntime(31297): ... 11 more 

  • 对于Google API Access,我可以为同一个Android程序包名称创build多个客户端ID吗?
  • 缺less来自AVD的Google Play服务
  • Android:AdMob无法正常工作
  • Google Play服务源代码
  • BaseGameUtils未知错误,onConnectionFailed:result 4
  • GooglePlayServicesUtil.isGooglePlayServicesAvailable()崩溃
  • 同时使用Play服务和AdMob SDK
  • 更改标题后,Google Play排行榜图表应用不再排名吗?
  • 您需要在清单中添加以下内容:

     <application> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> ... </application> 

    编辑:

    这些信息可以在logcat错误消息中find,也可以在设置Google Play服务 (感谢Brais Gabin)

    @ Benoit'a答案有确切的解决scheme我回答额外的知识:

    1. Benoit回答的一个方法是在AndroidManifest.xml里面添加如下应用标签

     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

    2.我们可以直接添加版本代码

     <meta-data android:name="com.google.android.gms.version" android:value="4030500" /> 

    4030500是存储在里面的版本代码

    谷歌播放,services_lib>水库>值> version.xml

    喜欢

     <integer name="google_play_services_version">4030500</integer> 

    结论:最新的google play服务需要一个版本名称,在AndroidManifest.xml中使用<meta-data .. />

    注: 我强烈build议使用第一种方式

    自从你问这个问题之后,有些事情就改变了。 如果您使用的是Google Play服务7.0或更高版本,Gradle将自动合并清单并为您提供所需的元数据。

    引用伊恩湖 :

    (…)如果您使用Gradle,Google Play服务7.0还具有另一个省时function:它会自动包含

     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> 

    在你的AndroidManifest.xml中input – 不需要手动添加它! 简单Manifest合并的完美例子,其中库可以添加所需的元数据,接收器,权限以及他们所需要的任何其他东西 – less了一件要忘记的东西!

    注意:这不适用于完整的游戏服务或游戏服务的穿着AAR–只有粒度AAR具有内置的function。

    只要确保将以下两个元数据标签添加到“您的”应用程序的AndroidManifest.xml中即可

     <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_API_KEY"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> 

    这个解决scheme为我工作。

    我将现有的项目从Eclipse导入到Android Studio,在Eclipse项目中, Integers.xml包含硬编码值,如下所示

     <integer name="google_play_services_version">5089000</integer> 

    导致版本与Android Studio构build的最新版本的Play服务发生冲突。 从Integers.xml删除这行后,它开始为我工作。

    我在包含的Google服务副本的res / values文件夹中创build了一个文件“version.xml”,并粘贴了代码:

     <?xml version="1.0" encoding="UTF-8"?> <resources> <integer name="google_play_services_version">4030500</integer> </resources> 

    原来的副本错过了文件,它确实解决了我的问题

    closures<application>标签后添加<meta-data> 。 这解决了我的问题