2014-07-03 8 views
16

Tutto funzionava bene, poi improvvisamente eclissi ha iniziato a rompersi chiedendo un interruttore di prospettiva e andando in modalità di debug con l'errore "Link di classe" Lcom/google/android/gms/location/internal/ParcelableGeoFence; " fallito. Googling il problema non porta da nessuna parte. Il debugger punta a PathClassLoader (BaseDexClassLoader) .findClass (String) line: 61
Stranamente quando rimuovo map.setMyLocationEnabled (true); dal mio codice non è più crash, ma ancora posso vedere questo logcatImpossibile trovare la classe 'com.google.android.gms.location.internal.ParcelableGeofence', con riferimento al metodo glt.a

E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a 
W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 

qui è pieno di registro:

07-03 13:07:31.677: W/dalvikvm(5639): VFY: unable to resolve static method 24936: Lguj;.a 

(Landroid/content/Context;)Lgri; 
07-03 13:07:31.697: E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a 
07-03 13:07:31.697: W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 
07-03 13:07:31.697: E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a 
07-03 13:07:31.697: W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 
07-03 13:07:31.697: E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a 
07-03 13:07:31.697: W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 
07-03 13:07:31.707: I/Google Maps Android API(5639): Google Play services package version: 5084034 
07-03 13:07:31.737: W/dalvikvm(5639): VFY: unable to resolve static field 20873 (t) in Lyp; 
07-03 13:07:31.737: W/dalvikvm(5639): VFY: unable to resolve static field 20873 (t) in Lyp; 
07-03 13:07:32.778: W/dalvikvm(5639): Link of class 'Lcom/google/android/gms/location/internal/ParcelableGeofence;' failed 
07-03 13:07:32.778: E/dalvikvm(5639): Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method glt.a 
07-03 13:07:32.778: W/dalvikvm(5639): VFY: unable to resolve check-cast 2086 (Lcom/google/android/gms/location/internal/ParcelableGeofence;) in Lglt; 
07-03 13:07:34.089: I/Adreno200-EGLSUB(5639): <ConfigWindowMatch:2078>: Format RGBA_8888. 
07-03 13:07:34.319: D/LOCATION(5639): Connected 
07-03 13:07:34.319: I/Adreno200-EGLSUB(5639): <ConfigWindowMatch:2089>: Format RGBX_8888. 

risposta

1

la questione è probabilmente accadendo perché la mappa non viene caricato e l'applicazione sta provando per trovarti in una mappa scaricata. La mappa non viene caricata con la tua chiave API o il nome del pacchetto. Penso che la tua chiave API sia cambiata. Controlla la tua chiave API e il nome del pacchetto.

+0

no non è il caso, non importa quando chiamo map.setMyLocationEnabled (true); anche la chiave API non è stata modificata. Ho persino ripristinato il codice per alcuni giorni tramite git, ma ancora senza fortuna, immagino che sia qualcosa di simile ad adt. – Vilen

+0

Hai fatto un aggiornamento di eclissi? Coz che cambierà il tuo codice sha1. E quindi la tua chiave API deve essere cambiata. –

+0

no, non l'ho fatto, ma ho comunque creato una nuova chiave per la mappa, purtroppo sfortunatamente. La cosa strana è che l'applicazione funziona dopo quell'errore – Vilen

-2

Per me impostare le preferenze di Eclipse -> Android -> Build -> Il keystore personalizzato ha risolto il problema. Inoltre, disinstalla l'app e pulisci la build.

+0

provato, creato una nuova chiave personalizzata, poi la chiave google api basata sul keystore personalizzato, disinstallato il progetto dal dispositivo, pulito lo spazio di lavoro, ma non cambio, comunque grazie per l'aiuto – Vilen

+0

Che ha risolto il problema per me .... – SpyZip

0

Ho fatto due cose in ordine per Google Map per lavorare:

  1. uso il MapView invece di MapFragment o SupportMapFragment.
  2. se la mappa è stato implementato utilizza posizione corrente dell'utente, quindi è necessario verificare se l'utente ha il suo servizio di localizzazione attivato e implementare la vostra mappa in base a che l'utilizzo di un metodo

in questo modo, ad esempio:

public boolean isLocationServiceEnabled() { 
    LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); 
    if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 
      //All location services are disabled 
     return false; 
    } 
    return true; 
} 
-1

Per i nuovi visitatori, se il codice e la chiave API sono corretti, verificare se il dispositivo ha una connessione Internet. Perché ho dimenticato l'interruttore su internet, quindi ho avuto lo stesso errore.

+0

Dai, pensi che io stia eseguendo il debug di un'app di mappe senza connessione internet o chiave API non valida? e così tante persone hanno lo stesso problema? – Vilen

+0

Questa è la risposta per lo sviluppatore che esegue il debug di un'app per mappe senza connessione a Internet perché siamo umani, quindi FORSE possiamo dimenticare di aprire la connessione Internet quando eseguiamo il debug. Quella risposta è solo un CONSIGLI PER CONTROLLARE CHE LA CONNESSIONE FORSE NON SIA OK – Ozan