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

32 eclipse android google-maps google-play-services

我的应用正在使用Google Play服务进行定位.它也使用谷歌地图.直到今天它仍然工作正常,但在Eclipse更新和Google Play Services v13安装之后,它已经无法正常工作了.今天我已经进行了几次更新. - Android SDK工具更新至22.3 - Android SDK平台工具更新至19 - Android SDK构建工具更新至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" />
Run Code Online (Sandbox Code Playgroud)

我曾多次使用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>
Run Code Online (Sandbox Code Playgroud)

我想知道这个问题是否是由谷歌播放服务清单引起的?

这是我发现的清单:

<?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>
Run Code Online (Sandbox Code Playgroud)

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

meh*_*meh 72

谷歌地图入门指南说:

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

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

<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)


小智 7

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

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)

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