2013-04-26 5 views
0

Я реализовал приложение Android год назад с помощью Google Maps v1, и теперь мне нужно исправить ошибку. Проблема в том, что когда я запускаю приложение из Eclipse на своем аппаратном устройстве, карта пуста. В LogCat я получаю ошибку:Blank MapView на Android

04-26 14:07:30.754: W/System.err(2354):  at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 

Я думаю, что это ошибка ключ API, но в течение последних 2 дней поиска Stack Overflow, Google и веб-сайт Карт SDK, я не могу найти решение. Хотя эта проблема уже решена в Stack Overflow, ни одно из решений не сработало для меня. Надеюсь, какой-нибудь опытный человек может мне помочь.

Я знаю, что Maps v1 устарел, и я намерен перейти на v2. Но сейчас мне просто нужно устранить эту ошибку, и, согласно Google, существующие ключи API должны продолжать работать.

Следует отметить, что я недавно перенес свою среду разработки с моего компьютера на Mac, убедившись, что вы используете тот же файл debug.keystore. Я не уверен, что это красная селедка, но, возможно, есть какая-то настройка или файл, который мне нужно скопировать из старой среды.

ЧТО Я Пытался:

  1. Проверено файл debug.keystore был идентичен тому, на моем старом компьютере.
  2. Исправлена ​​ошибка проверки ключа API на консоли API Google, но он больше не появляется (возможно, потому, что он устарел).
  3. Зарегистрированный новый ключ API для Maps v2 и попытался его использовать.

ответ

0

Я думаю, что, наконец, понял. По умолчанию истечение срока действия сертификата отладки составляет 365 дней, а мой срок действия истекает 09 сентября 2012 года. Это означает, что я должен обновиться до Google Maps v2, чтобы исправить эту ошибку, и я абсолютно пилюлю, потому что это означает, что я больше не могу поддерживать Android 1.6 но будет вынужден к минимальной версии 2.2. Это сократит 8% моих пользователей, которые не смогут обновить из-за фрагментации, и потратили впустую 2 разочаровывающих дня своего времени.

Почему Google делает так сложно использовать свои карты на своей платформе (Android)? Для сопоставления приложений Google Maps для iOS так просто. Хотя, возможно, они пытаются решить эту фрагментацию с помощью SDK Google Play, который можно загрузить независимо от версии Android? В любом случае, я собираюсь узнать, потому что моя рука вынуждена.

Grrr!

+0

PS: Я могу принять только свой ответ через 2 дня. – Flyingkiwi

0

Может быть несколько причин.

1.) Если вы используете java 1.7 или выше, вам нужно сгенерировать md5 Print по-другому, так как обычно он всегда возвращает клавишу sh1. Используйте ключ -v как.

C:\Program Files\Java\jdk1.7.0\bin>keytool -v -list -alias 
androiddebugkey -keystore debug.keystore -storepass android -keypass android 

2.) Требуется разрешение на использование Интернета в файле манифеста Android.

<uses-permission 
    android:name="android.permission.INTERNET"> 
</uses-permission> 
<uses-permission 
    android:name="android.permission.ACCESS_FINE_LOCATION"> 
</uses-permission> 

3.) Используйте следующее разрешение в файле манифеста.

<!-- import the library com.google.android.maps!!! --> 
<uses-library android:name="com.google.android.maps" /> 
+0

благодарит за ответ: 1. Но я не могу восстановить этот ключ, потому что он устарел. Правильно? 2. У меня уже есть это. 3. У меня уже есть это. Странно, что это сработало! – Flyingkiwi

+0

Что здесь ухудшилось? Это debug.keystore или что? –

+0

Google Maps for Android v1 теперь устарел в пользу v2. Вы больше не можете обращаться за ключами API v1, но, конечно, у меня его уже нет. Google говорит, что ключи v1 будут продолжать работать, но вы не сможете получить новые. Ключ API v1 был сгенерирован из debug.keystore, поэтому я убедился, что он скопировал его из старой системы. – Flyingkiwi