Google maps Отображается только белый экран Android

Я сделал все процедуры, чтобы добавить google maps api, но я получаю эти ошибки. Извините за плохой язык.

09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/du; (406) 01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/du;' failed 01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/ej; (2358) 01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/ej;' failed 01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/j/k; (2374) 01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/j/k;' failed 01-09 12:20:55.359: E/dalvikvm(5918): Could not find class 'maps.j.k', referenced from method maps.y.ae.a 01-09 12:20:55.359: W/dalvikvm(5918): VFY: unable to resolve new-instance 3566 (Lmaps/j/k;) in Lmaps/y/ae; 

Здесь его manifest.xml

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="com.comparto.piso.permission.MAPS_RECEIVE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <permission android:name="com.comparto.piso.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <application ........ > <uses-library android:name="com.google.android.maps" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="api key" /> ...... ..... 

В java-коде я расширяет FragmentActivity и здесь его код onCreate

 GooglePlayServicesUtil .isGooglePlayServicesAvailable(getApplicationContext()); GoogleMap map = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMap(); if (map != null) { map.setMapType(GoogleMap.MAP_TYPE_NORMAL); } 

Вот его макет xml

  <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="300px" class="com.google.android.gms.maps.SupportMapFragment" /> 

Все «Невозможно разрешить суперкласс xxxx» и «Link of class xxxx failed» из Dalvik в logcat является нормальным, если ваше устройство не на том же уровне API, что и в библиотеке Google Maps.

Вы должны проверить, получаете ли вы отказ от авторизации, используя эту команду:

 adb logcat | grep Maps 

Если вы видите что-то вроде этого:

 E/Google Maps Android API(): Authorization failure. 

Тогда это будет означать, что вы не поставляете правильный ключ API в свой манифест. Повторите попытку в консоли Google API (в разделе « Доступ к API »), добавили ли вы правильную пару отпечатков пальцев и имя пакета, как описано в руководстве .

Это сообщение об ошибке обычно возникает при запуске на устройстве, не имеющем доступных API Google Play. Вы вызываете isGooglePlayServicesAvailable() , но вы не проверяете возвращаемое значение. Вы должны проверить, чтобы он возвращал ConnectionResult.SUCCESS перед продолжением. В случае некоторых других кодов ошибок вы можете попросить их обновить / установить через getErrorDialog() , например –

 int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); switch (resultCode) { case ConnectionResult.SUCCESS: // proceed break; case ConnectionResult.SERVICE_MISSING: case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: case ConnectionResult.SERVICE_DISABLED: Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 1); dialog.show(); } 

Согласно Google, API услуг Google Play требует «физического устройства разработки», поэтому они официально не поддерживаются на эмуляторах. Итак, если вы работаете на эмуляторе, почти наверняка у вас отсутствуют необходимые сервисы. Люди сообщают, что он работает в эмуляторах, но я не пробовал себя. Вы можете просмотреть ответы в этом сообщении , если хотите посмотреть, как установить Google Play на эмулятор.

У меня был такой же белый вопрос экрана после небольшого resaerch, который я выяснил, я забыл включить карту APi из консоли разработчика, как показано на рис. Ниже:

Надеюсь, у вас может быть такая же проблема, и это поможет:

Включение карты api на консоли

Если вы используете «class =» com.google.android.gms.maps.SupportMapFragment в своем макете xml, теперь вы используете свой андроид: minSdkVersion под Android 3.0 или ниже в вашем manifest.xml.

Затем посмотрите мой связанный сайт ниже, что поможет вам понять, что вы должны установить и установить перед запуском карт Google на своем устройстве. Эта ссылка очень проста, и вы получите то, что хотите сделать, чтобы отображать карты Google на вашем устройстве.

Мой сайт ===> просто нажмите здесь

Возможно, ваш SHA1-ключ вашего затмения был изменен (EX: вы, возможно, удалили папку .android в домашней папке Windows), поэтому это причина, по которой эта ошибка аутентификации. Вы должны удалить свой ключ и создать новый ключ с новым SHA1 eclipse. Введите описание изображения здесь

Зарегистрируйте новый ключ здесь и перезагрузите эту страницу за несколько минут, он обновит новый ключ: https://console.developers.google.com/project/watchful-net-796/apiui/credential

Запомнить! В конце концов, вы должны скопировать новый ключ для манифеста и пересоздать свой проект. Удачи!

У вас отсутствует ключ api

  <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="api key" /> 

Введите api_key в параметр значения

И версия google playService также отсутствует. Добавить

 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

manifest внутри <application тега <application