AndroidManifest中的Google Play Services v13错误元数据

时间:2013-11-01 21:15:57

标签: android eclipse google-maps google-play-services

我的应用正在使用Google Play服务进行定位。它也使用谷歌地图。直到今天它仍然工作正常,但在Eclipse更新和Google Play Services v13安装之后,它不再起作用了。今天我已经进行了几次更新。 - Android SDK工具已更新至22.3 - Android SDK平台工具已更新至19 - Android SDK Build-tools更新至19 - Google Play服务已更新至13 我也更新了ADT

当我启动应用程序时,我收到此错误消息:

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" />

我曾多次使用Google Play服务,此应用程序此工作正常至今。我没有在清单中包含任何元数据。

我尝试修复问题,包括我的应用清单中的元数据标记,但它无法正常工作。目前我的应用程序清单看起来像这样(这与我的应用程序工作时包含的清单相同)。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.app"
android:versionCode="2"
android:versionName="1.0.1" >

<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
android:name="com.myapp.app.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />

<uses-permission android:name="com.myapp.app.permission.MAPS_RECEIVE" />

<supports-screens android:requiresSmallestWidthDp="320" />
<supports-screens android:compatibleWidthLimitDp="394" />


<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="18" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomizedTheme" >

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="thecode" />

<activity
android:name="com.myapp.app.ActivityMain"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
    </activity>
</application>

</manifest>

我想知道这个问题是否是由google-play-services清单引起的?

这是我发现的清单:

<?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>

要使用Google Play服务,我按照Google提供的说明进行操作,直到现在我还没有发现任何问题。

3 个答案:

答案 0 :(得分:72)

Google Maps getting started guide说:

将Google Play服务版本添加到您应用的清单

  

编辑应用程序的AndroidManifest.xml文件,然后添加   在元素中声明如下。这嵌入   该应用程序编译的Google Play服务版本。

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

答案 1 :(得分:7)

如果你使用谷歌播放服务修订版13,那么必须把这个元标记:

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

但它不像android 2. *那样工作低级api。 要解决此问题,请先为frayo修订版12安装google play服务并使用它。它适用于所有api级别

答案 2 :(得分:1)

@Javier你有没有看过帖子&#34; android开发者博客&#34; ?他们上周更新了谷歌播放服务应用程序。因此,版本代码现在适用于lib。它运作良好。我们可以使用最新版本的&#34; google-play-service-lib&#34;现在。我测试了它,它的工作原理!见http://android-developers.blogspot.kr/2014/01/google-play-services-41.html