Необходимый тег метаданных в вашем приложении AndroidManifest.xml не существует.

Я разрабатываю приложение Google Maps для Android.

Но, как-то мое приложение вылетает с ошибкой, например:

java.lang.IllegalStateException: A required meta-data tag in your app 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>

Log: -

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

Я использую карты Google для этого приложения Как я могу это решить?

Ответы

Ответ 1

Отсутствует нижеследующее в теге приложения манифеста. Это новое требование в отношении обновленных сервисов Google Play.

Проверьте тему Добавить версию Служб 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>

не требуется

Ответ 2

Google Map V2 добавляет новую функцию в AndroidManifest.xml. Вам нужно будет добавить этот метатег в тег application

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

Ответ 3

Попробуйте добавить следующий тег метаданных в файл манифеста, который работает нормально.

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

Ответ 4

Начало работы с Картами 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" />

Ответ 5

Нет необходимости в разрешении:

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

Тег, включающий службы google, может сделать трюк.

Ответ 6

Попробуйте очистить проект (выберите проект > вкладка проектa > очистить)

Я решил проблему с этим. Очистка является решением большинства проблем.

Ответ 7

Как Google Map V2 используйте Службы Google Play вам необходимо обновить его. Для последних сервисов 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 → values ​​- > version.xml)

2. Непосредственно добавьте код версии, например

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

4030500 - это код версии, который хранится внутри

Google-игра-services_lib > Рез > значения > version.xml

Как

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

Ответ 8

Если вы обновите свои сервисы Google Play, вам нужно обновить тег res/values ​​.

Ответ 9

Когда я прочитал весь пост, в моем случае я просто добавляю эти фрагменты и прекрасно работаю

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