2013-01-09 9 views
5

ho fatto procedura per aggiungere al api google maps ma sto ottenendo questo errore. Ci scusiamo per parolacce.Google mappe Android solo schermo bianco è mostrato

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; 

Qui il suo 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" /> 
    ...... 
    ..... 

nel codice Java i estende FragmentActivity e qui è il codice onCreate

GooglePlayServicesUtil 
       .isGooglePlayServicesAvailable(getApplicationContext()); 

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

qui è il layout 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" /> 
+0

tuo offuscamento è non funzionante, direi – njzk2

+1

Modifica e aggiungi una parte rilevante del tuo codice.Questo non è il modo di fare domande anche se non conosci l'inglese. – Nezam

+0

ok, modificherò per aggiungere altro codice ora. spiacente –

risposta

1

Questo messaggio di errore è usualmente occu rs quando si esegue su un dispositivo che non ha API di Google Play disponibili. Chiami isGooglePlayServicesAvailable(), ma non stai controllando il valore restituito. Si consiglia di verificare che restituisca ConnectionResult.SUCCESS prima di procedere. Nel caso di alcuni altri codici di errore, si può avere loro richiesto di aggiornare/installare tramite getErrorDialog(), come -

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(); 
} 

Secondo Google, Google Play Services API richiedono 'dispositivo di sviluppo fisico', quindi non sono ufficialmente supportato dagli emulatori. Quindi, se stai utilizzando un emulatore, è quasi certo che manchi i servizi richiesti. La gente dice di averlo fatto funzionare in emulatori, ma non ci ho provato. È possibile visualizzare le risposte in this post, se si desidera esaminare l'installazione di Google Play su un emulatore.

+0

sto facendo il test su un dispositivo reale e sto avendo successo. L'errore nel logcat è: Impossibile trovare la classe 'maps.j.k', referenziata dal metodo maps.y.ae.a –

+0

Ok. Disponi di [Google Maps] (https://play.google.com/store/apps/details?id=com.google.android.apps.maps&hl=en) installato e aggiornato? Guarda l'inizio della traccia del tuo log e vedi se si vede qualcosa come "E/Google Maps Android API (14657): manca l'applicazione Google Maps" – iagreen

+0

Vedi [questa risposta] (http://stackoverflow.com/a/ 13789869) per come controllare a livello di programmazione nella tua app. – iagreen

0

Se si utilizza "class =" com.google.android.gms.maps.SupportMapFragment" nel layout XML, ora si sta utilizzando il vostro Android: minSdkVersion sotto Android 3.0 o più basso nella vostra manifest.xml

.

E poi vedi il mio sito collegato qui sotto, che è utile per capire cosa dovresti installare e impostare prima di eseguire le mappe di Google sul tuo dispositivo. Questo link è molto semplice e otterrai ciò che vuoi fare per visualizzare google mappe sul dispositivo.

My linked site ===> just Click here

+0

ho scaricato il tuo esempio e ho avuto lo stesso problema. Corro il progetto in 2 dispositivi diversi con gli stessi risultati. scusa per il linguaggio scurrile e grazie per la tua risposta –

+0

Hai provato a inserire la tua chiave API in del tuo Manifest.xml? – BBonDoo

5

Tutto il "Impossibile risolvere superclasse xxxx "e" Link of class xxxx failed "di Dalvik nel logcat è normale se il dispositivo non si trova allo stesso livello API di quello utilizzato dalla libreria di Google Maps.

Si dovrebbe verificare se si stanno ottenendo un errore di autorizzazione invece utilizzando questo comando:

adb logcat | grep Maps 

Se vedi qualcosa di simile:

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

Allora vorrebbe dire che non stanno fornendo la chiave API corretta nel tuo manifest. Prova di nuovo nel vostro Google API Console (nella sezione API di accesso) se si è aggiunto l'impronta digitale e il pacchetto nome di coppia corretto come described in the guide.

0

Forse la chiave SHA1 vostro Eclipse è stato modificato (EX: Forse cancellato cartella .android nella cartella home di Windows) ed è quindi il motivo per cui l'autenticazione errore. È necessario eliminare la chiave e creare una nuova chiave con il nuovo SHA1 di eclissi. enter image description here

Regen nuova chiave qui e aggiorna la pagina in alcuni minuti, si aggiorna chiave nuova: https://console.developers.google.com/project/watchful-net-796/apiui/credential

Ricordate! Dopotutto, devi copiare una nuova chiave per manifestare e ricostruire il tuo progetto. In bocca al lupo!

0

voi hanno API mancante chiave

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

immettere api_key nel parametro value

E google playService versione è anche mancante. Aggiungere

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

a manifest all'interno <application tag

1

ho avuto lo stesso problema della schermata bianca dopo un po 'resaerch scopro che avevo dimenticato di attivare Map API dalla Console per gli sviluppatori, come mostrato nella foto qui sotto: -

spero che potrebbe avere lo stesso problema e vi aiuterà: -

Map api enable on console

Problemi correlati