Erreur java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment dans Google Map V2

J'utilise Google Map V2 API pour la carte. J'ai copié le google-play-services.jar dans le dossier libs et j'ai configuré le chemin de construction d'eclipse.

Je reçois une exception car j'ai ajouté Logcat.

  • Android: bouton radio dans la vue de liste personnalisée
  • Comment convertir android.net.Uri à java.net.URL?
  • Comment programmer la limite d'utilisation de données définie par l'utilisateur sur la configuration du système d'exploitation Android?
  • Développement de jeux Android SDK?
  • GetColor (int id) obsolète sur Android 6.0 Marshmallow (API 23)
  • Qu'est ce que dx.jar dans les SDK Android?
  • Aidez-nous à résoudre ce problème.

    Home_map_view.xml

    <fragment android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:name="com.google.android.gms.maps.MapFragment" android:layout_marginBottom="60dp"/> 

    AndroidManifest.xml

     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <permission android:name="com.example.app.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="com.example.app.permission.MAPS_RECEIVE"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="KEY"/> <activity android:name=".MainActivity" android:label="@string/app_name" android:clearTaskOnLaunch="true" android:configChanges="orientation" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".HomeMapView" android:label="@string/title_home" android:configChanges="orientation" android:launchMode="singleTop" /> </application> </manifest> 

    HomeMapView.java

     public class HomeMapView extends FragmentActivity implements OnTabChangeListener { private GoogleMap mapView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home_map_view); // Getting reference to SupportMapFragment of the activity_main SupportMapFragment fragment = new SupportMapFragment(); getSupportFragmentManager().beginTransaction() .add(R.id.map, fragment).commit(); // Getting Map for the SupportMapFragment mapView = fragment.getMap(); mapView.setMyLocationEnabled(true); } } 

    Logcat:

     05-15 23:17:52.843: E/AndroidRuntime(19782): FATAL EXCEPTION: main 05-15 23:17:52.843: E/AndroidRuntime(19782): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.HomeMapView}: android.view.InflateException: Binary XML file line #13: Error inflating class fragment 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.os.Handler.dispatchMessage(Handler.java:99) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.os.Looper.loop(Looper.java:130) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.ActivityThread.main(ActivityThread.java:3687) 05-15 23:17:52.843: E/AndroidRuntime(19782): at java.lang.reflect.Method.invokeNative(Native Method) 05-15 23:17:52.843: E/AndroidRuntime(19782): at java.lang.reflect.Method.invoke(Method.java:507) 05-15 23:17:52.843: E/AndroidRuntime(19782): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 05-15 23:17:52.843: E/AndroidRuntime(19782): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 05-15 23:17:52.843: E/AndroidRuntime(19782): at dalvik.system.NativeStart.main(Native Method) 05-15 23:17:52.843: E/AndroidRuntime(19782): Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 05-15 23:17:52.843: E/AndroidRuntime(19782): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:216) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.Activity.setContentView(Activity.java:1660) 05-15 23:17:52.843: E/AndroidRuntime(19782): at com.example.app.HomeMapView.onCreate(HomeMapView.java:61) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 05-15 23:17:52.843: E/AndroidRuntime(19782): ... 11 more 05-15 23:17:52.843: E/AndroidRuntime(19782): Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.support.v4.app.Fragment.instantiate(Fragment.java:395) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.support.v4.app.Fragment.instantiate(Fragment.java:363) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:264) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 05-15 23:17:52.843: E/AndroidRuntime(19782): ... 20 more 05-15 23:17:52.843: E/AndroidRuntime(19782): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.example.app-2.apk] 05-15 23:17:52.843: E/AndroidRuntime(19782): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 05-15 23:17:52.843: E/AndroidRuntime(19782): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 05-15 23:17:52.843: E/AndroidRuntime(19782): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 05-15 23:17:52.843: E/AndroidRuntime(19782): at android.support.v4.app.Fragment.instantiate(Fragment.java:385) 05-15 23:17:52.843: E/AndroidRuntime(19782): ... 23 more 

  • IabResult: service de facturation indisponible sur l'appareil. (Réponse: 3: Facturation non disponible)
  • La vue de la liste de filtrage donne des résultats incorrects
  • Comment télécharger des fichiers apk du marché Android vers le PC?
  • Android getResource () erreur indéfinie
  • Android - Comment obtenir le nom de fichier sélectionné du document
  • Vérifiez BitmapDescriptor pour null
  • 3 Solutions collect form web for “Erreur java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment dans Google Map V2”

    Votre problème est la façon dont vous avez ajouté les services google-play-services à votre projet:

    J'ai copié le google-play-services.jar dans le dossier libs et j'ai configuré le chemin de construction d'eclipse.

    C'est faux! Lisez les 3 premières étapes de cette publication de blog que j'ai écrit pour avoir une idée de la façon de le faire correctement:

    Google Maps API V2

    En bref, vous devez importer google-play-services tant que projet dans votre espace de travail. Et ensuite le référencer à partir de votre projet.

    Ce devrait être le résultat:

    Entrez la description de l'image ici

    Utiliser un fragment de carte de support à la place du fragment de carte. Assurez-vous d'avoir ajouté le support libray

     <fragment android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:name="com.google.android.gms.maps.SupportMapFragment " android:layout_marginBottom="60dp"/> 

    Deuxièmement, vous ne devez pas copier le fichier jar sur votre chemin de construction.

    Vous devriez renvoyer le projet de bibliothèque de services google play dans votre projet de carte.

    Importez votre projet de bibliothèque dans votre lieu de travail. Importez les mêmes pour éclipser.

    Faites un clic droit sur votre projet. Goto propriétés. Choisissez Android. Cliquez sur Android. Parcourez et ajoutez le projet de la bibliothèque.

    Entrez la description de l'image ici

    Si tout se débrouille comme le code google, vérifiez le fichier manifeste dans mon cas, j'ai ajouté une clé géographique et une clé de carte, c'est pourquoi l'exception se produit,

    Remarque: n'ajoutez pas deux touches dans le fichier de manifeste, supprimer la clé de la carte

     meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/google_maps_key"/> 

    Ajoutez ce code.

      <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/auto_location"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.