Карта Google подписала ошибки api в Android

Когда я переключился с моего ключа карты отладки на мой подписанный ключ карты, мои карты перестали работать. Я получаю следующие ошибки в 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)

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

Любые идеи?

Ответ 1

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

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

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

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

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

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

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

Для получения обоих ключей выполните действия Получение ключей API для GoogleMaps на Android.

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

UPDATE:

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

keytool -list -keystore debug.keystore ...

вместо:

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

Итак, я не обновлял хранилище Eclipse своим отпечатком.

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

Ответ 5

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

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

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

FYI мое приложение Android 2.2 отлично работает, извлекая карту на Droid через 3G.

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

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

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

Ответ 6

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

java.io.IOException: Server returned: 3

Вы можете использовать эту ссылку для получения ключа API: Register

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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