2013-07-19 12 views
5

Ho creato una chiave API Google per la seconda versione e l'ho usata in manifest, ma non riesco a visualizzare la mappa sul dispositivo.Ho creato una chiave API Mappa Android per V2, non è possibile visualizzare una mappa

Ho seguito tutto fornito nella documentazione di google map. inoltre ho usato this link.

MainActivity.java.

pacchetto com.example.googlenewmap;

import android.os.Bundle; 
    import android.support.v4.app.FragmentActivity; 

    import com.google.android.gms.maps.GoogleMap; 
    import com.google.android.gms.maps.SupportMapFragment; 
    import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
    import com.google.android.gms.maps.model.LatLng; 
    import com.google.android.gms.maps.model.MarkerOptions; 

    public class MainActivity extends FragmentActivity { 
     static final LatLng HAMBURG = new LatLng(53.558, 9.927); 
     static final LatLng KIEL = new LatLng(53.551, 9.993); 
     private GoogleMap map; 

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

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

      if (map != null) { 
       map.addMarker(new MarkerOptions().position(HAMBURG) 
         .title("Hamburg")); 
       map.addMarker(new MarkerOptions() 
         .position(KIEL) 
         .title("Kiel") 
         .snippet("Kiel") 
         .icon(BitmapDescriptorFactory 
           .fromResource(R.drawable.ic_launcher))); 
      } 

     } 

    } 

File manifesto

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

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

     <permission 
      android:name="com.example.googlenewmap.permission.MAPS_RECEIVE" 
      android:protectionLevel="signature" /> 

     <uses-permission android:name="com.example.googlenewmap.permission.MAPS_RECEIVE" /> 

     <!-- Copied from Google Maps Library/AndroidManifest.xml. --> 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
     <uses-permission android:name="android.permission.INTERNET" /> 
     <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

     <!-- External storage for caching. --> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

     <!-- My Location --> 
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
     <!-- Maps API needs OpenGL ES 2.0. --> 
     <!-- Maps API needs OpenGL ES 2.0. --> 

     <uses-feature 
      android:glEsVersion="0x00020000" 
      android:required="true" /> 
     <!-- End of copy. --> 

     <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" /> 
      <!-- 
      ** You need to replace the key below with your own key. ** 
      The example key below will not be accepted because it is not linked to the 
      certificate which you will use to sign this application. 
      See: https://developers.google.com/maps/documentation/android/start 
      for instructions on how to get your own key. 
      --> 

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

      <activity 
       android:name="com.example.googlenewmap.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> 
     </application> 

    </manifest> 

Come posso risolvere questo problema?

+0

Come si presenta il file XML del layout? Qual è l'errore che stai ottenendo? – Sean

+0

non è necessario estendere 'FragmentActivity' estendere lo standard' Activity'. non è necessario usare 'SupportMapFragment'. usa 'MapFragment'. dal momento che il tuo minsdk è 14 non 11 e sotto – Raghunandan

+0

@Raghunandan grazie per la risposta ma l'ho già usato ma non funzionava – Michel

risposta

1

Quale chiave si sta utilizzando?

Esistono due tipi di chiavi chiave di debug e chiave di rilascio. Durante la firma di apk, si desidera utilizzare la chiave di rilascio. Per che si desidera confrontare che con apk firmato

Fase 1:

diciamo per esempio il tuo nome apk è A e si firma e la creazione di un archivio di chiavi per A.apk cioè A.keystore verrà creato in qualche guidare la posizione. Consideralo in E drive.

fase 2:

ora! Alla JDK nell'unità C (considerando per le finestre e l'assegnazione di unità C)

C: \ Program Files \ Java \ jdk1.7.0 \ bin> keytool -list -v -keystore E: \ A.keystore -alias Un

Così si creerà SHA-1 di impronte digitali

chiave Debug è normale che si estrae come al solito.

+0

Ok! Fammi provare! questo Shadow – Michel

+0

non è in grado di ottenere il file dell'archivio di chiavi relativo all'app puoi dirmi dove lo otterrò – Michel

+0

il file di archivio di chiavi è dove stavi creando apk.file personalizzato firmato-> esportazione-> Android-> esportazione applicazione android-> particolare nome del progetto> passa a next-> quindi cerca posizione ed estendi con .keystore e riempi con password e alcuni requisiti ecc. Quindi confronta il keystore con le mappe. – Shadow

Problemi correlati