2013-07-09 2 views
1

Я пытаюсь отобразить карту Google Map.Android API Google «Не удалось загрузить карту»

Я следил за этим tutorial.

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

Вот что я сделал:

  • создал проект API на консоли Google
  • создал ID
  • Активированный службы "API v2 Google Maps для Android"
  • Сформирован новый Android ключ
  • Импортировал этот ключ в манифест
  • Следующее видео это, чтобы установить библиотеку

А вот мой .java:

public class MainActivity extends FragmentActivity { 

private static GoogleMap mMap = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

    if(status == ConnectionResult.SUCCESS){ 
     if (mMap == null) { 

      mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

      if (mMap != null) { 
      UiSettings settings = mMap.getUiSettings(); 

      settings.setZoomControlsEnabled(true); 
      settings.setCompassEnabled(true); 
      settings.setRotateGesturesEnabled(true); 
      settings.setTiltGesturesEnabled(true); 
      settings.setScrollGesturesEnabled(true); 
      settings.setZoomControlsEnabled(true); 
      settings.setZoomGesturesEnabled(true); 
      settings.setMyLocationButtonEnabled(false); 

      mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
      mMap.setMyLocationEnabled(false); 
      } 
      } 
     } 
    } 
    protected void onResume() { 
     super.onResume(); 

     int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

     if(status == ConnectionResult.SUCCESS){ 
      if (mMap == null) { 

       mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

       if (mMap != null) { 
       UiSettings settings = mMap.getUiSettings(); 

       settings.setZoomControlsEnabled(true); 
       settings.setCompassEnabled(true); 
       settings.setRotateGesturesEnabled(true); 
       settings.setTiltGesturesEnabled(true); 
       settings.setScrollGesturesEnabled(true); 
       settings.setZoomControlsEnabled(true); 
       settings.setZoomGesturesEnabled(true); 
       settings.setMyLocationButtonEnabled(false); 

       mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
       mMap.setMyLocationEnabled(false); 
       } 
      } 
    } 
} 

мой activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <fragment 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      class="com.google.android.gms.maps.SupportMapFragment" /> 


</LinearLayout> 

И мой манифест:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.map" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <permission android:name="com.example.map.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
    <uses-permission android:name="com.example.map.permission.MAPS_RECEIVE"/> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <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" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

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

    <uses-sdk 
     android:minSdkVersion="12" 
     android:targetSdkVersion="17" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <uses-library android:name="com.google.android.maps" /> 
     <activity 
      android:name="com.example.map.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="<MyKey>"/> 

    </application> 

</manifest> 
+0

'android: minSdkVersion =" 11 "' сделать это 12 или использовать supportfragment – Raghunandan

ответ

1

Внутри вашего приложения тег (в манифесте) добавить :

<uses-library android:name="com.google.android.maps" /> 

Замените фрагмент XML этим:

<fragment 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.google.android.gms.maps.SupportMapFragment" 
    /> 

Пусть ваша деятельность распространяется FragmentActivity и OnCreate и onResume называют этот код:

int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

if(status == ConnectionResult.SUCCESS){ 
    if (mMap == null) { 

     mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

     if (mMap != null) { 
     UiSettings settings = mMap.getUiSettings(); 

     settings.setZoomControlsEnabled(true); 
     settings.setCompassEnabled(true); 
     settings.setRotateGesturesEnabled(true); 
     settings.setTiltGesturesEnabled(true); 
     settings.setScrollGesturesEnabled(true); 
     settings.setZoomControlsEnabled(true); 
     settings.setZoomGesturesEnabled(true); 
     settings.setMyLocationButtonEnabled(false); 

     mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     mMap.setMyLocationEnabled(false); 
     } 
    } 
} 

Не забудьте объявить переменную MMAP следующим образом:

private GoogleMap mMap; 
+0

Фрагмент делает сбой приложения:/ – nsvir

+0

Вы пробовали мой последний отредактированный код? Код, который я опубликовал, работает для меня с Android 2.2.1 –

+0

Я пробовал отредактированный код и распространялся на FragmentActivity, и он разбился. Я пробовал увеличивать активность, и это не сбой, но это не работает. – nsvir

0

Основано на earlier edit от nsvir, генерируя новый debug.keystore, и новый ключ решает t его проблема.

Информация в this article была полезной для понимания большего количества сертификатов.

Смежные вопросы