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

时间:2014-01-09 07:36:35

标签: android 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" />

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

9 个答案:

答案 0 :(得分:52)

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

检查主题将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>

不需要

答案 1 :(得分:8)

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

指南说:

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

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

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

答案 2 :(得分:8)

Google Map V2在AndroidManifest.xml中添加新功能。您需要在application代码

中添加此元标记
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

答案 3 :(得分:6)

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

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

答案 4 :(得分:3)

正如Google Map V2使用Google Play services,您需要更新它。 最新的Google Play服务需要version名称,使用<meta-data .. />内的AndroidManifest.xml来提及。这可以通过以下两种方式解决_

1。meta-data

的应用标记内添加以下AndroidManifest.xml
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

此值存在于您的Google Play services库中( res - &gt;值 - &gt; version.xml

2. :直接添加

等版本代码
<meta-data android:name="com.google.android.gms.version" android:value="4030500" />

4030500是版本代码,存储在

<强>谷歌播放services_lib&GT; RES&GT;值&GT; version.xml

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

答案 5 :(得分:2)

尝试清理项目(选择项目&gt;项目标签&gt;清理)

我解决了这个问题。清洁是大多数问题的解决方案。

答案 6 :(得分:1)

无需获得许可:

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

包含谷歌服务的标签可能会成功。

答案 7 :(得分:0)

如果您更新 Google Play服务,您还需要更新您的资源/值标识

答案 8 :(得分:0)

您必须添加此行

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