загрузка Android mapview

#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.