应用程序的AndroidManifest.xml中所需的元数据标记不存在。

我正在开发一个Android的谷歌地图应用程序。

但是,不知何故,我的应用程序崩溃给出一个错误,如:

java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. 

这就是我的AndroidManifest.xml的样子:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.locations" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET"/> <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"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <permission android:name ="com.example.locations.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.locations.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyAZhJllASbTnrFta8hj55shKydSi0ks824"/> </application> </manifest> 

日志: –

 01-09 12:29:35.249: E/AndroidRuntime(7448): Caused by: java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. 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" /> 

我正在使用谷歌地图这个应用程序如何解决这个问题?

清单的应用程序标记中缺less以下内容。 这是新的谷歌播放服务的新要求。

查看主题将Google Play服务版本添加到应用的清单@

https://developers.google.com/maps/documentation/android/start

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

删除这个

 <permission android:name ="com.example.locations.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> 

不需要

Google Map V2在AndroidManifest.xml中添加新function。 您将需要在application标记中添加此元标记

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

尝试在Manifest文件上添加下面的元数据标签,它工作正常。

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

Google地图入门https://developers.google.com/maps/documentation/android/start

指导说:

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

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

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

无需许可:

 <permission android:name="com.example.locations.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> 

包括谷歌服务的标签可能会诀窍。

尝试清理你的项目(select项目>项目选项卡>清洁)

我解决了我的问题。 清洗是解决大多数问题的方法。

由于Google地图V2使用的是Google Play服务,因此您需要对其进行更新。 最新的谷歌播放服务需要一个version名称,这是使用AndroidManifest.xml <meta-data .. />提到的。 这可以通过以下两种方式来解决_

1.AndroidManifest.xml应用程序标签内添加以下meta-data

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

这个值就在你的Google Play services库中( res – > values – > version.xml

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> 

如果你更新你的谷歌播放服务,你也需要更新你的res / values标签

当我阅读所有的post,在我的情况下,我只是添加这些片段,并奇妙地工作

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