2012-03-08 6 views
1

J'ai déjà mis <uses-library android:name="com.google.android.maps" /> dans la balise d'application . Lorsque j'essayais de passer à cette activité, je me suis crashé.Android google maps "NoClassDefFound"

ceci est mon fichier java:

**

import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import android.os.Bundle; 

public class MyMap extends MapActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mapactivity); 
    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 
} 

et ceci est mon fichier xml: (à my_api_key je suis ma propre clé que je suis arrivé de Google)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <com.google.android.maps.MapView 
    android:id="@+id/mapview1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:enabled="true" 
    android:clickable="true" 
    android:apiKey="my_api_key" /> 


</RelativeLayout> 

et quand je vais à l'éditeur en éclipse, je vois: http://i.stack.imgur.com/eUUHb.jpg

merci.

toute trace de pile: juillet 3 à 8: 06: 10,554: E/AndroidRuntime (18227): java.lang.NoClassDefFoundError: Fproj.dnlgby.MyMap juillet 3 à 8: 06: 10,554: E/AndroidRuntime (18227): à Fproj.dnlgby.MenuActivity.onClick (MenuActivity.java:60) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à android.view.View.performClick (View.java:2496)) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à l'adresse android.view.View $ PerformClick.run (View.java:9120) 03-08 07: 06: 10.554: E/AndroidRuntime (18227)): à android.os.Handler.handleCallback (Handler.java:587) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à l'adresse android.os.Handler.dispatchMessage (Handler.java:92) 03-08 07: 06: 10.554: E/AndroidRuntime (1 8227): at android.os.Looper.loop (Looper.java:130) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à l'adresse android.app.ActivityThread.main (ActivityThread.java:3859) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à l'adresse java.lang.reflect.Method.invokeNative (méthode native) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): at java .lang.reflect.Method.invoke (Method.java:507) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à l'adresse com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java : 840) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à l'adresse com.android.internal.os.ZygoteInit.main (ZygoteInit.java:598) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à dalvik.system.NativeStart.main (méthode native) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): Causée par: java.lang.IllegalAccessError: Classe ref dans la classe pré-vérifiée résolu à l'implémentation inattendue 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à dalvik.system.DexFile.defineClass (méthode native) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à dalvik.system.DexFile.loadClassBinaryName (DexFile.java:207) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à dalvik.system.PathClassLoader.findClass (PathClassLoader.java : 200) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à java.lang.ClassLoader.loadClass (ClassLoader.java:551) 03-08 07: 06: 10.554: E/AndroidRuntime (18227): à java.lang.ClassLoader.loadClass (ClassLoader.java:511) 3 au 8 juillet: 06: 10,554: E/AndroidRuntime (18227): ... 12 plus

+0

Pouvez-vous poster la trace de pile actuelle? Quand vous dites Déplacez la classe, que voulez-vous dire?L'img que vous liez à, cela signifie essentiellement que votre style n'est pas dans le thème. Utilisez la liste déroulante dans le coin supérieur droit pour sélectionner le thème de l'activité que vous souhaitez exécuter avec mapViewStyle défini. –

+0

a publié la trace complète de la pile. Je vous remercie. –

Répondre

0

Est-ce en cours d'exécution sur un périphérique ou l'emulato r? Si c'est sur l'émulateur, l'émulateur est-il configuré pour fournir des API Google?

+0

son fonctionnement sur mon appareil (motorola razer) –

+0

fixe. le problème était que j'ai inclus le google maps lib sur mon chemin de construction et j'utilise google api. –

+0

qu'est-ce que cela signifie @ DanielGabay.Pourriez-vous s'il vous plaît élaborer.Que avez-vous fait pour afficher la carte avec succès dans votre App.J'ai la même erreur cumin dans mon appareil pas émulateur. –

0

J'ai résolu cette erreur en cochant "Copier des projets dans l'espace de travail" lors de l'importation de la librairie Google Play Services. Plus d'infos ici: http://developer.android.com/google/play-services/setup.html

+1

ouais je pense que cette question n'est plus valable puisque c'est pour Google Maps Api V1. V2 fonctionne comme vous l'avez dit mais dans le passé il n'y avait pas d'alternative et cette erreur a tourmenté les gens pendant un moment. Le comportement perçu est que la classe de MapActivity (v1 SDK uniquement) échoue à l'initialisation et ne parvient pas à se charger entièrement en tant que classe. Ensuite, cela bloquerait votre application au hasard avec une erreur de pile très cryptique. –

+0

@GregGiacovelli ok, je ne l'ai pas remarqué, merci beaucoup – UmbySlipKnot