Google Map подписала ошибки API-ключа в Android - PullRequest
61 голосов
/ 04 сентября 2011

Когда я переключился с ключа отладочной карты на подписанный ключ карты, мои карты перестали работать.Я получаю следующие ошибки в logcat:

09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26
09-03 18:18:04.112: WARN/System.err(4073): java.io.IOException: Server returned: 3
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
09-03 18:18:04.112: WARN/System.err(4073):     at java.lang.Thread.run(Thread.java:1019)

Я дважды проверил все, разрешения и библиотека на месте.Я воссоздал опаленный ключ и не повезло.

Есть идеи?

Ответы [ 9 ]

81 голосов
/ 24 января 2012

У меня была такая же проблема, и я подумал, что в интернете не было никакого полезного ответа, поэтому надеюсь, что это поможет всем в будущем.

При использовании GoogleMaps for Android вам понадобятся два ключа - отладка и выпуск.

Ключ "debug" - это вводящий в заблуждение термин. Этот ключ также должен использоваться при разработке приложения в Eclipse. Поэтому, по сути, используйте ключ отладки для разработки, тестирования, отладки.

Когда вы будете готовы запустить приложение на Market, установите android:debuggable="false" в AndroidManifest.xml и используйте ключ Signed API.

При использовании подписанного ключа API, MapView будет отображаться ТОЛЬКО при установке приложения из Android Market. Таким образом, при установке приложения из Eclipse (Запуск от имени, отладка и т. Д.) Или из командной строки (adb install) не будет отображаться MapView. Будьте уверены, как только приложение появится в Маркете - вы загрузите его, и появится MapView.

С подписанным ключом API, если вы развернете приложение из Eclise, вы получите «Сервер вернул 3, IOProcessing Exception 26» в качестве предупреждения - просто проигнорируйте его.

Примечание. Также убедитесь, что нет повторяющихся экземпляров одного и того же MapView. Если ваше приложение нуждается в «х» нет. из MapView с, сгенерировать "х" нет. новых подписанных ключей (по одному для каждого MapView), поскольку GoogleMaps имеет ограничение на запрос для одного экземпляра MapView.

Чтобы получить оба ключа, выполните шаги для Получение ключей API для GoogleMaps на Android .

Счастливого кодирования!

UPDATE:

Ссылка выше для получения ключей API теперь устарела. См. Получение ключей API для GoogleMaps Android API v2 в будущем.

3 голосов
/ 17 января 2012

Наконец-то исправлено.

Я использую Windows-машину, поэтому я просто перешел на C:\Users\rohit\.android и удалил debug.keystore и default.keyset1, как только это будет сделано, я пошел в Eclipse и применил чистую сборку.в мой проект и все готово!

2 голосов
/ 04 апреля 2012

У меня была такая же проблема.В моем случае то, что я делал неправильно, было этим.Я писал команду keytool следующим образом:

keytool -list -keystore debug.keystore ...

вместо:

keytool -list -keystore ~\.android\debug.keystore ...

Поэтому я не обновлял хранилище ключей Eclipse своим отпечатком пальца.

Iнадеюсь, это кому-то поможет :)

2 голосов
/ 13 января 2012

Подписанный ключ карты используется для выпуска приложения. Таким образом, вы получите такую ​​информацию. если вы отлаживаете приложение через USB-порт с подписанным ключом карты. Вернитесь к ключу отладочной карты, если вы хотите отладить приложение, и замените его подписанным ключом карты, прежде чем выпускать обновление или новую версию.

1 голос
/ 18 сентября 2012

еще одна вещь: после добавления -v вы должны помнить, что API Google просто нужен MD5, а не SHA1.Так, пожалуйста, проверьте, какой код вы даете Google.

1 голос
/ 11 сентября 2012

Если вы используете ключ отладки, который кто-то другой сгенерировал и предоставил вам, это является причиной пустой карты со следующим исключением.

java.io.IOException: Server returned: 3

Вы можете использовать эту ссылку, чтобы получитьКлюч API: Регистрация

1 голос
/ 04 сентября 2011

Я только что столкнулся с точно такой же проблемой.

Не существует пользовательского кода, который выдает исключение: он генерируется в Eclipse LogCat, и в результате вы не видите ни одного из фрагментов карты Google.Как и Джен, я восстановил ключ, но безрезультатно.

Платформа Android 3.2, устройство Asus Transformer, соединение WiFi.

К вашему сведению, мое приложение Android 2.2 работает нормально, получая карту на Droid через 3G.

Вот решение моей проблемы, надеюсь, это поможет Джен:

В моемВ случае, если я устанавливаю версию релиза на Transformer, используя значок Eclipse «Отладка как», с привязанным к Transformer USB, карта перестает работать, как описано выше (к вашему сведению, эту процедуру я успешно использовал много раз с Android 2.2 идругие устройства).

Поэтому я попробовал это вместо этого: я использую опцию Eclipse File | Export ... для создания выпуска APK, а затем устанавливаю этот APK на Transformer с помощью приложения Asus Sync.Все отлично.Появляются плитки карты.

0 голосов
/ 18 октября 2013

Для бедных душ, которые пытались построить пример карты из дополнений sdk: как только я переименовал пакет из com.example.mapdemo в com.mynmae.mapdemo, карта волшебным образом появилась.Да, я потерял час на поиск и попытку, и он молча отклонил имя пакета.

0 голосов
/ 08 мая 2012

У меня такой же вопрос, но я думаю, что нашел ответ!

  1. Решите выполнить эти шаги https://developers.google.com/android/maps-api-signup и получите отпечаток MD5 вашего сертификата
  2. Во время разработки, если карта не отображается, не беспокойтесь об этом! Простое извлечение APK Используйте инструменты Android с ключевым инструментом, который использовался в первом шаге, и используйте этот файл APK для установки на свой телефон, вы увидите MapView

В любом случае, во время разработки, может быть, вы не видите MapView, но это пока не проблема и не беспокоитесь об этом! Просто подождите, когда закончите приложение и постройте с вашим хранилищем ключей, и вы увидите правильное отображение карты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...