Карты Google на Android не работают над приложением, но демо в порядке

Я не могу заставить Google Maps работать в моем приложении.

Я вижу пустой экран; Нет сетки, только логотип google и кнопки +/-.

Что я наделал:

  • У меня включен API API Google Maps Android v2.
  • Я добавил свой проект вместе с демонстрационным проектом в список учетных данных API в консоли Google.
  • Я также добавил необходимые разрешения для Интернета, местоположения, com.google.android.providers.gsf.permission.READ_GSERVICES.
  • Даже добавлено разрешение «MAPS_RECEIVE», поскольку некоторые сообщения предлагаются
  • Также добавлены метаданные google_play_services_version

Поскольку демонстрации работают, я буквально скопировал MultiMapDemoActivity и его файлы в свой проект и попытался открыть карту, но безрезультатно.

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

Вот интересный бит, который я заметил, я обычно получаю это:

10-02 12:29:20.376: D/REQUEST(5826): Connection opened to:https://clients4.google.com/glm/mmap/api 10-02 12:29:20.376: D/REQUEST(5826): Open Connection 

Вслед за этим:

 10-02 12:21:45.361: D/REQUEST(5826): DRD(80): 62|132 10-02 12:21:45.361: D/REQUEST(5826): Close 10-02 12:21:45.361: D/REQUEST(5826): Error processing: com.google.maps.api.android.lib6.bd@42caa7b8 not retrying 10-02 12:21:45.361: D/REQUEST(5826): Retrying: com.google.maps.api.android.lib6.gmm6.ca@4296a530 
  • Кроме того, не уверен, что это актуально, но как только я нажимаю, чтобы открыть карту, или щелкните по карте после ее открытия и показывая пустое представление, я вижу следующее:

      10-02 13:03:32.978: E/DatabaseUtils(15468): Writing exception to parcel 10-02 13:03:32.978:/DatabaseUtils(15468): java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL 

EDIT # 1

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

EDIT # 2 Также объявленное имя пакета было com.ABC (манифест); Тогда как деятельность моего проекта имела состав com.AB.

С тех пор я обновил структуру проекта, чтобы соответствовать таковой манифеста, но я все еще вижу те же ошибки, что и раньше, ничего не меняется. Я действительно в море здесь, так как я не могу понять, что здесь может быть не так.


Некоторая помощь для решения этого будет оценена, спасибо!

Solutions Collecting From Web of "Карты Google на Android не работают над приложением, но демо в порядке"

Оказывается, я прочитал здесь n-1 вопросов по этой проблеме. Наконец, после непрерывного поиска повсюду, я наткнулся на ответ здесь @ Jack.

В основном строка: "HttpsURLConnection.setDefaultSSLSocketFactory(...)" был виновником моего кода. Я прокомментировал это, и все сработало хорошо.

ПРИМЕЧАНИЕ. Я не пытался держать строку кода и модифицировать ее, чтобы сделать карты еще не выполненными. Если мне нужно / сделаю это, я отправлю комментарий.

Вам нужно добавить свой отпечаток SHA1 к общедоступному доступу API. Перейдите в настройки eclipse>. Android> постройте и скопируйте свой отпечаток по умолчанию Eclipse SHA1.

Теперь перейдите на страницу https://console.developers.google.com, выберите свое приложение, «API» и «auth»> «credentials»> и нажмите «Редактировать разрешенные приложения для Android», поставьте свой SHA1 figerfirnt следующим образом:

XX: XX: XX: XX: XX … XX; com.your.pakage.app

Как насчет вашего ключа Google? Эта строка в файле манифеста:

<meta-data android:name="com.google.android.maps.v2.API_KEY" ....

Я также постоянно борюсь с таким поведением. Первое, что вы хотите проверить в таких ситуациях, – то, что ваш ключ из файла debug.keystore действительно тот, который вы зарегистрировали в Google. Этот ключ будет использоваться, если вы отлаживаете свое приложение локально.

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

У меня тоже была эта проблема, и мне потребовалось столько часов, чтобы решить ее, наконец, я сделал эти шаги, и это сработало наконец!

  • Выполните те же действия, что и здесь, https://developers.google.com/maps/documentation/android/start
  • Используйте отпечаток пальца отладочного сертификата, если вы тестируете свой проект вместо сертификата выпуска, который вы используете при установке приложения в магазине воспроизведения.
  • Не забудьте добавить значение API Google и заменить его «API_VALUE».

  • Измените цель создания проекта в API Google API: Project> properties> android>.

Надеюсь это поможет..

Это необходимые разрешения в соответствии с документацией Google :

 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- The following two permissions are not required to use Google Maps Android API v2, but are recommended. --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Я рекомендую вам также включить это:

 <uses-feature android:glEsVersion="0x00020000" android:required="true"/> 

Добавьте их в файл манифеста

 <permission android:name="xxx.xxxx.xxxx.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="xxx.xxxx.xxxx.permission.MAPS_RECEIVE" /> <uses-permission android:name="xxx.xxxx.xxxx.permission.READ_GSERVICES" /> 

Замените xxx.xxxx.xxxx своим именем пакета