Klasse ' com.google.android.gms.location.internal.ParcelableGeofence von Verfahren glt.a referenziert konnte nicht gefunden werden

? Naveen Kumar @ | Original: StackOverFlow
---

Ich habe eine App, wo Homepage Karte .

Sie wissen nicht, warum ich immer diese Fehlermeldung und zusammen mit diesem Fehler Could not find class 'gpr', referenced from method gps.a

Ich habe Eclipse aktualisiert, so habe ich versucht, den API-Schlüssel mit neuen SHA1 Fingerprint ändern. Aber das funktioniert nicht.

Meine app ist es, aktuellen Standort angezeigt, wenn Sie die App zu öffnen. Es landete gerade in ganze Karte, aber in LOG Katze ich diese Fehler. Hier ist meine 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());`

Ich habe versucht, sie um Google und es scheint, gibt es noch keine angemessene Lösung, damit es hilfreich wäre, wenn jemand könnte mir dabei helfen .

---

Top 5 Antwort

1Alex Ferrer Developer @

Ich zeige Ihnen, wie ich löste das gleiche Problem haben .

Zunächst reinigte ich alle sdk und ich heruntergeladen wieder Google Play Dienstleistungen lib. Dann nahm ich .android Ordner von meinem Computer und ich meine debug.keystore regeneriert .

Danach bekomme ich nur meine neue SHA1 meine Google Maps V2 Api Key zu erhalten.

Nach meinem apikey aktualisieren, mal sehen, wie ich meinen Code ändern.

Jetzt benutze ich Fragment mit MapFragment insted von MapView in Ihrem XML- Layout.

    <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> 

Und nutzen FragmentManager um ihn zu suchen :

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

Ich hoffe, das ist hilfsbereit und leid, wenn mein Englisch ist so schlecht , Grüße

2Autocyclist @

Könnten Sie Ihre Manifest veröffentlichen ? Sans -API-Schlüssel, natürlich.

Ihre Log sieht fast identisch für ein Problem, ich habe erst seit kurzem, die indem Sie den folgenden, um das Manifest fixiert wurde abbauen :

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

Ich arbeite an einer Anwendung, die den Zugriff auf Karten war ganz gut funktioniert, dann hörte wie aus heiterem Himmel . Ich konnte nichts sehen tatsächlich auf eine fehlende Berechtigung zeigt ; Ich nahm nur auf, wenn ich das Manifest im Vergleich mit einer anderen Anwendung, die Google Maps-API v2 verwendet .

Ich bin immer noch, warum es war zuvor ohne sie (Google sagt dazu die Zustimmung für die Karten an die Arbeit ) zu verwechseln . Vielleicht würde ich einmal hat es dort und versehentlich die Zeile gelöscht, aber so oder so legt es in ist, was repariert.

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

3virtualSO @

Ich hatte das gleiche Problem nach dem Upgrade auf API- Ebene 23 im Juli ( mit Client- google -Play - service_lib 5.0.77 ) .

Das Problem wurde gelöst, nachdem Google Play -Service wurde auf die neueste ( 6.1.09 ) auf dem Testgerät aktualisiert.

So scheint es gewesen zu sein ( eine gerätespezifische Ausgabe) aufgrund der Inkompatibilität zwischen dem Google-Play- Service- Version auf dem Gerät / Emulator und der Client-Bibliothek API (google -Play - service_lib ) im Projekt.

Laut Dokumentation von Google, wenn der Client ist neuer als die Service wird die Client-Bibliothek API soll out-of -date -Service apk Probleme zu lösen ; ( und in diesem Fall tut, da das Problem nicht wirklich gelöst apk beeinflussen ) https://developer.android.com/google/play-services/index.html .

Meine frühere Versuche, dieses Problem durch den Einsatz neuer API-Schlüssel und Neuinstallation von Eclipse / ADT / SDK beheben / google -Play - service_lib, wie in dieser und ähnlicher Fragen vorgeschlagen hat nicht funktioniert.