应用程序的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" />