Необходимый тег метаданных в вашем приложении 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" />