Impossibile trovare la classe com.google.android.gms.location.internal.ParcelableGeofence ' riferito dal metodo glt.a

? Naveen Kumar @ | Original: StackOverFlow
---

Ho un app dove homepage è mappa .

Non so perché sto ottenendo questo errore e insieme a questo errore Could not find class 'gpr', referenced from method gps.a

Ho aggiornato eclissi così ho provato a cambiare a chiave API con la nuova impronta digitale SHA1 . Ma questo non funziona .

La mia app è quello di mostrare posizione corrente quando si apre l'applicazione . E 'appena atterrato in tutta la mappa, ma in LOG gatto ottengo questi errori . Ecco il mio Logcat

`07-08 12:54:39.897: I/Google Maps Android API(25749): Google Play services client version: 5077000

 07-08 12:54:39.907: I/dalvikvm(25749): Could not find method guj.a, referenced from method gqi.a

 07-08 12:54:39.907: W/dalvikvm(25749): VFY: unable to resolve static method 24936: Lguj;.a (Landroid/content/Context;)Lgri;

 07-08 12:54:39.907: D/dalvikvm(25749): VFY: replacing opcode 0x71 at 0x0003

 07-08 12:54:39.917: E/dalvikvm(25749): Could not find class 'gpr', referenced from method gps.a

 07-08 12:54:39.917: W/dalvikvm(25749): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;

 07-08 12:54:39.917: D/dalvikvm(25749): VFY: replacing opcode 0x22 at 0x0000

 07-08 12:54:39.927: E/dalvikvm(25749): Could not find class 'gpr', referenced from method gps.a

 07-08 12:54:39.927: W/dalvikvm(25749): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;

 07-08 12:54:39.927: D/dalvikvm(25749): VFY: replacing opcode 0x22 at 0x0000

 07-08 12:54:39.927: E/dalvikvm(25749): Could not find class 'gpr', referenced from method gps.a

 07-08 12:54:39.927: W/dalvikvm(25749): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;

 07-08 12:54:39.927: D/dalvikvm(25749): VFY: replacing opcode 0x22 at 0x0000

 07-08 12:54:39.937: D/dalvikvm(25749): DexOpt: unable to opt direct call 0x5ea3 at 0x0a in Lgps;.a

 07-08 12:54:39.937: D/dalvikvm(25749): DexOpt: unable to opt direct call 0x5ea3 at 0x0c in Lgps;.a

 07-08 12:54:39.937: D/dalvikvm(25749): DexOpt: unable to opt direct call 0x5ea3 at 0x0a in Lgps;.a

 07-08 12:54:39.957: I/Google Maps Android API(25749): Google Play services package version: 5084034

 07-08 12:54:39.977: W/dalvikvm(25749): VFY: unable to resolve static field 20873 (t) in Lyp;

 07-08 12:54:39.977: D/dalvikvm(25749): VFY: replacing opcode 0x62 at 0x000e
 07-08 12:54:39.977: W/dalvikvm(25749): VFY: unable to resolve static field 20873 (t) in Lyp;

 07-08 12:54:39.977: D/dalvikvm(25749): VFY: replacing opcode 0x62 at 0x000d

 07-08 12:54:40.888: I/dalvikvm(25749): Failed resolving Lcom/google/android/gms/location/internal/ParcelableGeofence; interface 4023 'Lgln;'

 07-08 12:54:40.888: W/dalvikvm(25749): Link of class 'Lcom/google/android/gms/location/internal/ParcelableGeofence;' failed

 07-08 12:54:40.898: E/dalvikvm(25749): Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method glt.a

 07-08 12:54:40.898: W/dalvikvm(25749): VFY: unable to resolve check-cast 2086 (Lcom/google/android/gms/location/internal/ParcelableGeofence;) in Lglt;

 07-08 12:54:40.898: D/dalvikvm(25749): VFY: replacing opcode 0x1f at 0x0019

 07-08 12:54:41.589: W/ActivityThread(25749): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());`

Ho provato a Google intorno e sembra non esiste una soluzione adeguata ma così sarebbe utile se qualcuno mi potrebbe aiutare con questo .

---

Top 5 Risposta

1Alex Ferrer Developer @

Vi mostro come ho risolto lo stesso problema che avete .

Prima di tutto, ho pulito tutto sdk e ho scaricato di nuovo Google Play Servizi lib . Poi ho tolto cartella .android del mio computer e ho rigenerato mio debug.keystore .

Dopo di che, ho appena ottenere il mio nuovo SHA1 per ottenere il mio Google Maps V2 Api Key .

Dopo aggiornare il mio apikey, vediamo come posso cambiare il mio codice .

Ora uso frammento con MapFragment invece di MapView nel layout xml .

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapsActivity" >

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

</RelativeLayout> 

E utilizzare FragmentManager per individuarlo :

    public class MapsActivity extends Activity
{
    private GoogleMap map;

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

        // Gets the MapView from the XML layout and creates it
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
        map.getUiSettings().setMyLocationButtonEnabled(false);
        //map.setMyLocationEnabled(true);
        map.setOnMapClickListener(this);
        map.setOnMapLongClickListener(this);
        try 
        {
            MapsInitializer.initialize(MapsActivity.this);
        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }
    }

Mi auguro che sia disponibile e scusa se il mio inglese è così male , saluti

2Autocyclist @

Potreste pubblicare il tuo manifesto ? Chiave API Sans, naturalmente .

Il registro sembra quasi identico al mio per un problema che ho avuto di recente, che è stato fissato aggiungendo il seguente manifesto :

 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

Sto lavorando su un'applicazione che è stata accede mappe bene, poi si fermò all'improvviso . Non riuscivo a vedere nulla in realtà che punta a un permesso mancante ; Ho preso solo su di esso quando ho confrontato il manifesto con un'altra applicazione che ha utilizzato le mappe api v2 .

Sono ancora confuso sul perché in precedenza ha lavorato senza di essa ( Google dice che è necessario il permesso per le mappe di lavorare ) . Forse avevo una volta messo lì e accidentalmente cancellato la linea, ma in ogni modo di metterlo in è quello riparato.

fonte :  https://developers.google.com/maps/documentation/business/mobile/android/config

3virtualSO @

Ho avuto lo stesso problema dopo l'aggiornamento a API di livello 23 nel mese di luglio ( con client google - play- service_lib 5.0.77 ) .

Il problema è stato risolto dopo Google Play servizio è stato aggiornato alla più recente ( 6.1.09 ) del dispositivo di test .

Così, sembra essere stato ( un tema specifico del dispositivo ) a causa di incompatibilità tra la versione Google Play Service sul dispositivo / emulatore e l'API libreria client ( google - play- service_lib ) nel progetto .

Secondo la documentazione di Google, quando il cliente è più recente del servizio, l'API libreria client dovrebbe risolvere i problemi out- of- date servizio APK ; ( e lo fa in questo caso, dal momento che il problema in realtà non interessa le rilasciato apk di ) https://developer.android.com/google/play-services/index.html .

I miei primi tentativi di risolvere questo problema utilizzando nuova chiave API, e nuove installazioni di Eclipse / ADT / SDK / google - play- service_lib, come suggerito in questa e altre domande simili non ha funzionato .