Google Map API v2 funktioniert nicht

7

Ich möchte die Beispielcode-Erwähnung hier ausführen: Code-Beispiel für Google Maps Android API V2

aber ich erhalte den Fehler NoClassDefFound. Unten ist mein Logcat.

Kann mir jemand helfen, es zu lösen? Jede Hilfe wird sehr geschätzt Danke

%Vor%     
xyz 04.12.2012, 12:47
quelle

10 Antworten

35

Ich hatte das gleiche Problem und wurde gelöst, indem ich Folgendes tue,

  • Entfernen Sie die android-support-v4.jar, die Sie manuell hinzugefügt haben
  • Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Android Tools - & gt; Support-Bibliothek hinzufügen ...

Danach hat alles für mich funktioniert.

    
Jairo Vazquez 04.12.2012, 15:17
quelle
3

Das hat für mich funktioniert.

Nachdem Sie die Android-Support-V4.jar und die Google_Play_Services_lib.jar importiert haben, gehen Sie zu:

Projekteigenschaften & gt; Java-Buildpfad & gt; Bestellen und Exportieren.

Stellen Sie sicher, dass die Kontrollkästchen neben Android-Support-V4.jar und Google_Play_Services_lib.jar aktiviert sind.

Klicken Sie auf OK und dann auf Ausführen. Alles sollte gut sein.

    
Andrew S 11.01.2013 18:37
quelle
1

Nach der Antwort von NewUserSOF (und ich bin neu dazu):

Ich habe JAIROS Antwort implementiert und Google Maps V2 "MainActivity" ausgeführt und die Liste der Optionen angezeigt.

Aber jetzt, wenn ich auf einen von ihnen klicke, sagt mein Emulator, dass ich die Google Play-Dienste aktualisieren muss. Wenn ich den "Update" -Button drücke, stürzt die App ab.

Von LogCat:

12-19 16: 02: 44.902: W / GooglePlayServicesUtil (2431): Google Play-Dienste sind veraltet. Benötigt 2012100, aber 1015 gefunden

12-19 16: 02: 51.136: E / AndroidRuntime (2431): android.content.ActivityNotFoundException: Keine Aktivität zum Behandeln der Absicht {act = android.intent.action.VIEW dat = http: //play.google .com / store / apps / details? id = com.google.android.gms flg = 0x80000 pkg = com.android.vending}

Gibt es eine Möglichkeit, die Google Play-Dienste auf dem Emulator zu aktualisieren? (Emulator ist Nexus S mit Google API 17).

    
Mike 19.12.2012 16:16
quelle
1

Mehrfachreferenz von android-support-v4.jar

Das ist für mich gearbeitet.
Wenn Ihr Projekt und das "goolge" -Spielservice-Bibliotheksprojekt beide android-support-v4.jar enthalten, kommt es zu einem Konflikt.
Entfernen Sie android-support-v4.jar von einem beliebigen Projekt.

    
Swap 13.11.2014 09:30
quelle
0

Klingt so, als ob Ihnen etwas Wichtiges fehlt;) Haben Sie diese Schritte gemacht?

  • Wählen Sie Projekt & gt; Eigenschaften, wählen Sie Java-Erstellungspfad und navigieren Sie zu Bibliotheken.
  • Wählen Sie Externe Jars hinzufügen, schließen Sie die folgenden JAR-Dateien ein und klicken Sie auf OK:

/extras/android/compatibility/v4/android-support-v4.jar

  • Fügen Sie Ihren eigenen Google Maps Android API-Schlüssel hinzu.
Jontas 04.12.2012 12:51
quelle
0

Wird das Google Play Services-Bibliotheksprojekt als Bibliotheksprojekt von Ihrem Beispielprojekt referenziert?

    
Janusz 04.12.2012 13:38
quelle
0

Edit: Jairos Antwort hat für mich funktioniert. Edit2: Es läuft, aber keine Karte angezeigt. Ich habe den API-Schlüssel an Ort und Stelle. Es ist ein neuer, der es gerade hat. Verwendeter Paketname com.example.mapdemo. Edit3: Refreshed API Schlüssel (sie dauern nicht lange). Noch keine Karte gezeigt. Edit4: Hatte falsche SHA1 falsch verwendet Keystore. Als ich danach suchte, fand die Suche nicht im .android-Ordner (Ubuntu sucht nicht im versteckten Ordner), sondern zeigte mir Schlüsselspeicher, die ich vom Herunterladen des androiden Quellcodes bekommen habe.

Ich habe genau den gleichen Fehler.

MainActivity startet, bezieht sich auf BasicMapActivity, die sich im selben Paket befindet. BasicMapActivity erweitert FragmentActivity, die in der Android-support-v4.jar ist.

Auf dieser Seite: Ссылка Siehe Schritt 4: "Wählen Sie Externe Jars hinzufügen, schließen Sie die folgenden JAR-Dateien ein und klicken Sie auf OK: /extras/android/compatibility/v4/android-support-v4.jar "

Mein Pfad war zu dem Jar war / support / anstelle von / compatibility / - Ich habe keinen / compatibility / Ordner. Vielleicht ist das ein Hinweis?

Mein android-support-v4.jar hat ein Modified-Datum von Mo 19 Nov 2012 09:14:47 AM EST. Ich frage mich, ob mir das neueste Update fehlt. SDK Manager wurde ausgeführt und erneut ausgeführt.

    
NewUserSOF 04.12.2012 14:05
quelle
0

1) Stellen Sie sicher, dass der Debug-Keystore, den Eclipse zur Signierung Ihrer App verwendet, tatsächlich der ist, den Sie zum Generieren des API-Schlüssels

aus dem SHA1-Hash extrahiert haben

Gehe zu:

  

Fenster & gt; Android & gt; Bauen & gt; "Standard Debug Keystore" und kopieren Sie den Pfad zum Keystore

Ausführen

  

keytool -list -v -keystore YOUR_KEYSTORE_PATH -Alias ​​androiddebugkey

2) Stellen Sie sicher, dass Sie das Paket Ihrer Anwendung nach dem SHA1-Hash in der API-Konsolenkonfiguration eingegeben haben

  

Android Apps:   XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX; com.yourapp.package

3) Ich habe diesen Fehler zu Beginn meiner Tests festgestellt und erinnere mich, dass ein Fehler in Logcat protokolliert wurde. Etwas wie "Authentifizierungsfehler" oder "API-Schlüsselfehler" etwas ähnliches. Achten Sie beim ersten Start der App nur auf das Logcat, um zu überprüfen, ob Probleme mit dem API-Schlüssel auftreten. Wenn dieser Fehler auftritt, müssen Sie die App beenden / neu installieren. Das Reparieren des API-Schlüssels, während die App noch läuft, löste das Problem nicht vollständig.

4) Ich musste das Support-Jar in den libs-Ordner in der Beispiel-App einfügen. Die Verknüpfung als externes jar im Eclipse-Buildpath funktionierte bei mir nicht.

    
Robert Estivill 04.12.2012 17:00
quelle
0

Je nachdem, wie Ihre Quelle eingerichtet ist, müssen Sie möglicherweise die android-support-Bibliothek für den Export festlegen (Rechtsklick - & gt; Eigenschaften- & gt; java build path- & gt; Bestellung und Export) Außerdem müssen Sie SupportMapFragment anstelle von MapFragment für die Supportbibliothek verwenden. Stellen Sie sicher, dass Sie auch getSupportFragmentManager anstelle von getFragmentManager verwenden.

    
rockgecko 05.12.2012 00:17
quelle
0

Bei mir war das Problem, dass Google Maps nicht installiert war. Ich hatte mein Tablet gelöscht und vergessen, es neu zu installieren.

    
themanatuf 17.01.2013 00:59
quelle