#android #maps
#Android #Карты
Вопрос:
Я создаю приложение для Android, в котором я использую mapviews. они отлично работают на устройстве при установке с ПК. но когда та же сборка устанавливается на устройство через Android Market, карты не загружаются. ниже приведен вывод logcat.
10-03 15:54:51.784: WARN/System.err(12994): java.io.IOException: Server returned: 3
10-03 15:54:51.784: WARN/System.err(12994): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
10-03 15:54:51.784: WARN/System.err(12994): at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
10-03 15:54:51.784: WARN/System.err(12994): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
10-03 15:54:51.784: WARN/System.err(12994): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
10-03 15:54:51.784: WARN/System.err(12994): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
10-03 15:54:51.784: WARN/System.err(12994): at java.lang.Thread.run(Thread.java:1019)
в чем может быть проблема,
может кто-нибудь, пожалуйста, помогите мне в этом??
Спасибо
Комментарии:
1. вы создали хранилище ключей для устройства? или вы используете ключ, который был создан с помощью отладки. хранилище ключей
2. @pratik я использую debug. хранилище ключей
3. @venky да, я подписал приложение и выполнил шаги по созданию mapview
4. для устройства вам необходимо создать другое хранилище ключей и сгенерировать новый ключ для карты. это будет для всего устройства во время отладки. хранилище ключей использовалось для конкретной машины, например, для виртуального устройства, только для отладки
5. @Pratik можете ли вы p [ls рассказать мне, как создать другое хранилище ключей для карты
Ответ №1:
Вы не можете использовать debug.хранилище ключей для создания ключа API Карт Google для приложений, поступающих на рынок. Если у вас уже есть приложение (или действительно любое приложение) на рынке, то у вас уже есть хранилище ключей, которое вы должны использовать. Вот как вы используете это хранилище ключей для получения ключа API Карт Google:
Шаг 1: В командной строке перейдите в каталог с вашим файлом хранилища ключей:
cd <keystore-dir>
Шаг 2: Теперь перечислите содержимое вашего хранилища ключей:
keytool -list -keystore <your-keystore-file>
Шаг 3. При появлении запроса введите пароль для хранилища ключей. Теперь Keytool отобразит список сертификатов и их MD5.
Шаг 4. Скопируйте MD5 для сертификата, который вы собираетесь использовать для подписи вашего приложения, в буфер копирования / вставки.
Шаг 5: Откройте браузер и перейдите к http://code.google.com/android/maps-api-signup.html — если вы не вошли в систему со своей учетной записью Android Market, вам нужно будет сделать это следующим образом, прежде чем генерировать свой ключ API.
Шаг 6. Вставьте MD5 из вашего буфера копирования / вставки в текстовое поле с надписью «Отпечаток MD5 моего сертификата:» и установите флажок «Я прочитал и согласился …».
Шаг 7: Нажмите «Сгенерировать ключ API». Теперь вы увидите ключ API, который вам нужно использовать.
Шаг 8. Скопируйте и вставьте ключ API в свойство вашего компонента MapView android:apiKey
.
Если у вас несколько MapView
компонентов, вы можете объявить строковый ресурс:
<string name="production_api_key">thisIsMyKeyValue</string>
Теперь вы можете использовать это в своем android:apiKey
свойстве так же, как вы ссылаетесь на любое другое строковое значение:
android:apiKey="@string/production_api_key"
Теперь экспортируйте приложение в файл APK, используя сертификат, который вы использовали на шаге 4.
При условии, что вы будете следовать этому пошаговому руководству, все должно быть в порядке — я только что начал использовать ключ API карт, сгенерированный таким образом.
На что следует обратить внимание:
-
Использование MD5 файла хранилища ключей (
md5 <my-keystore-file>
), а не сертификата. Это MD5 нужного вам сертификата. -
Вход в Google при генерации ключа API, но с неправильной учетной записью. Ваш ключ maps API и ключ подписи Android Market должны принадлежать одной и той же учетной записи Google.
Комментарии:
1. Я сталкиваюсь с противоположной проблемой: я не могу запустить приложение в режиме отладки, хотя я настроил ключ api.