Я пытаюсь реализовать пример MapView, который определен в примере Hello Hello, но теперь я столкнулся с этой ошибкой:
Failed to find provider info for com.google.settings
Любая идея, почему это происходит?
Я пытаюсь реализовать пример MapView, который определен в примере Hello Hello, но теперь я столкнулся с этой ошибкой:
Failed to find provider info for com.google.settings
Любая идея, почему это происходит?
Пример MapView по умолчанию не устанавливает ключ API. Поэтому вы должны установить его. Вот шаг за шагом:
Получить MD5 из вашей системы
%JAVA_HOME%\bin\keytool.exe -list -alias androiddebugkey -keystore "%userprofile%\.android\debug.keystore" -storepass android -keypass android
Получить ключ API, вставив сгенерированный MD5 на эту страницу:
http://code.google.com/android/maps-api-signup.html
Вставьте сгенерированный ключ API в {your_project_root}/res/layout/map.xml
<com.google.android.maps.MapView
android:id="@+id/myMapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="paste_generated_api_key_here"
/>
В AndroidManifest.xml убедитесь, что в тэге application
есть тег ниже:
<uses-library android:name="com.google.android.maps" />
а также следующий тег в тэге manifest
:
<uses-permission android:name="android.permission.INTERNET" />
Обновите свой проект и запустите
Примечание:
Подробнее на http://d.android.com/guide/tutorials/views/hello-mapview.html
Если вы убедились, что имеете разрешение INTERNET
и правильно создали API-ключ, и поместили его в android:apiKey
, и эта же ошибка все еще происходит, вот еще одна вещь, чтобы проверить: подписано ли ваше приложение с тем же сертификатом, который вы использовали для ключа API Карт?
Инструменты сборки Android используют разные сертификаты для отладочных сборников и для сборки релизов. Если вы создали контрольную сумму MD5 и ключ API для сертификата выпуска (тот, который вы используете в приложении "Экспорт приложений для Android" для создания .apk), он не будет работать в отладочных сборках - и наоборот.
Вы можете узнать, где находится хранилище отладки в Eclipse Preferences > Android > Build. Вы можете генерировать контрольную сумму MD5 и ключ API для нее так же, как и для вашего сертификата выпуска. Пароль по умолчанию для отладочного хранилища ключей - "андроид".
Еще одна вещь, которую нужно проверить:
У меня была эта проблема (вернее, моя проблема заключалась в том, что карта не показывалась). Я просмотрел учебник по просмотру карты и поместил тег "use-permission" внутри тега приложения по ошибке. Он должен быть непосредственно под тегом манифеста, например:
<?xml version="1.0" encoding="utf-8"?>
<manifest [...]>
<uses-sdk [...] />
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />
[...]
</application>
</manifest>
Очень простая ошибка, но мне потребовалось некоторое время, чтобы ее найти. Надеюсь, это поможет кому-то еще!
Просто просмотрите Здравствуйте, MapView:
Убедитесь, что вы вошли в строку AndroidManifest.xml для разрешений:
<uses-permission android:name="android.permission.INTERNET" />
Кроме того, у вас есть API-интерфейс Google Map?
Поместите его в определение макета MapView:
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="Your Maps API Key"
/>
Другое упоминание об ошибке: GGroups - MapView, отображающий черный экран после обновления до 1.5
Я только столкнулся с этой проблемой в эмуляторе, и я обнаружил, что единственный способ избежать этой ошибки - перезапустить эмулятор.