2012-12-07 4 views
11

Ho provato a seguire un tutorial su Android Maps V2 Quick Start Ma quando eseguo l'app, viene visualizzata una schermata di mappa vuota. Il mio telefono utilizza Android 2.2.1.Google Maps V2 mostra una schermata vuota su Android 2.2

enter image description here

Questo è quello che mostra in logcat:

12-07 18:07:52.479: W/dalvikvm(1654): VFY: unable to resolve instance field 24 
12-07 18:07:53.129: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/a/du; (411) 
12-07 18:07:53.129: W/dalvikvm(1654): Link of class 'Lmaps/a/du;' failed 
12-07 18:07:53.139: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/a/ej; (2363) 
12-07 18:07:53.139: W/dalvikvm(1654): Link of class 'Lmaps/a/ej;' failed 
12-07 18:07:53.139: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/j/k; (2379) 
12-07 18:07:53.139: W/dalvikvm(1654): Link of class 'Lmaps/j/k;' failed 
12-07 18:07:53.149: E/dalvikvm(1654): Could not find class 'maps.j.k', referenced from method maps.y.ae.a 
12-07 18:07:53.149: W/dalvikvm(1654): VFY: unable to resolve new-instance 3571 (Lmaps/j/k;) in Lmaps/y/ae; 
12-07 18:07:53.389: W/dalvikvm(1654): VFY: unable to resolve direct method 14965: Ljava/io/IOException;.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V 

Edit: Questo è il file manifest.xml:

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

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/> 
    <permission android:name="com.eunice.mapstry.permission.MAPS_RECEIVE" 
       android:protectionLevel="signature"/> 
    <uses-permission android:name="com.eunice.mapstry.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"/> 


    <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.eunice.mapstry.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="AIzaSyBt_JE6_XIVR8-t0HrbhskeLrAVxSJst6c"/> 
    </application> 

</manifest> 

Edit: ho aggiunto un'immagine del mio google console api:

enter image description here

+0

Avete aggiunto una chiave API di propria creazione? –

+0

Sì, ho. L'ho creato prima con il keystore di debug. Quando questo non ha funzionato, ho creato un altro keystore e creato una chiave API con quella ma non funziona ancora – euniceadu

+0

La vista mappa è lì quindi le uniche 2 cose che so di fermare la visualizzazione della mappa sono una cattiva chiave o non hai aggiunto il permesso di accedere a Internet nel manifest. –

risposta

7

Finalmente ho scoperto qual era il problema. Stavo selezionando il keystore di debug sbagliato. Sto lavorando con una macchina Ubuntu. Da quando ho aperto eclipse come root, il keystore predefinito in eclipse si trovava nella mia cartella principale (/root/.android/.android/debug.keystore) mentre stavo creando la chiave API con il keystore di debug dalla mia cartella utente. Ho creato una nuova chiave API con il keystore di debug nella cartella radice e ora funziona.

2

assicurarsi di aver abilitato il servizio API v2 Google Maps Android nel https://code.google.com/apis/console

  1. Vai a te scheda https://code.google.com/apis/console-> servizi
  2. Assicurarsi di Google Maps Android API v2 è ON
  3. Vai alla API scheda Accesso
  4. creare nuovamente un nuovo Android chiave

Allora siete pronti per andare :)

+0

L'ho già fatto. Ho appena modificato la mia domanda per includere un'immagine della mia console di google apis. – euniceadu

1

Stavo girando con questa roba per anni (certificati, nomi di pacchetti, console API ecc.) E non funzionava fino a quando non ho provato a disinstallare l'app dal mio dispositivo, quindi la reinstallavo e improvvisamente andava bene.

0

Ho avuto lo stesso problema e la soluzione era eliminare il debug.keystore. Quindi ho fatto un adb uninstall com.example.myapp Quindi pulire ed eseguire nuovamente l'applicazione.

Penso che il problema fosse dovuto al fatto che ho copiato e incollato nel mio manifest una chiave API fittizia e prima ho distribuito l'applicazione con esso.

1

Ho avuto lo stesso problema ma l'ho risolto in quel modo. Potrebbe essere utile se la risposta di cui sopra non funziona per voi. Dopo aver cambiato il nome del pacchetto dell'app, la mappa inizia a non essere visualizzata. (è accaduto dopo che ho cambiato il mio nome del pacchetto)

  1. Eliminare il file di archivio chiavi che si è utilizzato per il pacchetto precedente
  2. Creare un nuovo file di archivio chiavi
  3. Get SHA1 impronte digitali
  4. Vai alla API Console
  5. Creare una nuova app Android.
  6. Incollare la propria impronta digitale
  7. Utilizzare la data chiave API nel file manifesto

che ha funzionato per me