2012-12-10 13 views
14

Va bene, qui è quello che ho fatto con il exampleMap API v2 Errore di autorizzazione

  1. ottenuto la chiave di debug via keytool (fatto in modo che è la chiave del debug viene utilizzato da Eclipse in Preferenze -> Android -> costruire)
  2. ha generato la chiave dal comando

    $ keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass Android -keypass Android

  3. Copia incollato la somma SHA1 in Google API Console + mia packagename:

    somma; com.my.package

  4. Enabled Google Map API v2 nello stesso progetto in Google API Console

  5. copiato all'applicazione Manifest in meta-dati.

  6. Scaricato tramite il gestore SDK e Importato il progetto google-play-services_lib e fatto riferimento come progetto di libreria. Oltre a ActionBarSherlock.

  7. Prima di avviare mi assicuro che i servizi GooglePlay siano disponibili.

manifesto:

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

<permission 
    android:name="com.my.package.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 

<uses-permission android:name="com.my.package.permission.MAPS_RECEIVE"/> 
<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.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Applicazione:

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

La roba Proguard sono aggiunti anche, ma non offuscare in questo momento.

DrugstoresMapActivity estende SherlockFragmentActivity

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

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

</RelativeLayout> 

project.properties

target=android-17 
android.library.reference.1=../google-play-services_lib 
android.library.reference.2=../ActionBarSherlock 

L'ActionBarSherlock ha android-supporto-v4 in librerie, non il progetto principale se quello che conta.

Lo StartupActivity fa in modo che DrugstoresMapActivity sarà lanciato solo se i servizi disponibili

private void attempt() { 
    int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext()); 

    switch (result) { 
     case ConnectionResult.SUCCESS: 
      startActivity(new Intent(this, DrugstoresMapActivity.class)); 
      finish(); 
      break; 

     default: 
      GooglePlayServicesUtil.getErrorDialog(result, this, REQUEST_DIALOG) 
       .show(); 
      break; 
    } 
} 

ricontrollato le chiavi vanno bene. Non ho idea di cosa mi sia perso qui.

+0

solo curioso, come hai saputo di questo? Sono ogni giorno sui blog di tecnologia e sui documenti degli sviluppatori Android ogni giorno, e mi è capitato solo di scoprirlo cercando di risolvere un problema impossibile con le mappe android v1 nel mio codice esistente. – CQM

+0

Scopri cosa. Informazioni su Servizio errato abilitato? Se sì, dovresti averlo chiesto nel commento della risposta, non la domanda per renderlo più chiaro.Ho trovato il suggerimento da qualche parte in StackOverflow qui dopo ore di navigazione diversi problemi riguardanti questo problema. –

+0

no, come sei venuto a conoscenza delle mappe android v2, mi accorgo di * solo * due settimane di ritardo, ma penso che sia un grosso problema – CQM

risposta

46

Il servizio errato era abilitato. Assicurati che "API di Google Maps per Android v2", non "API di Google Maps v2" sia abilitato e ri-generi la chiave API.

+2

+1 Bingo .. :) Mi sono bloccato con la chiave API, cancellando i keystore, rinominato il pacchetto dell'app .. –

+1

Dopo aver abilitato l'API di Google Maps per Android v2, non funzionava ancora per me. Così ho provato a cambiare il target sdk nel mio manifest a 17 da 16 e quello lo ha risolto. Anche il passaggio a 16 è ancora funzionante. –

+1

Oh mia parola - anche questo era il mio problema e mi stavo strappando i capelli. Grazie!! – SNyamathi

Problemi correlati