2013-05-26 6 views
1

Je suis nouveau pour le développement android. J'ai commencé avec quelque chose de simple, mais la première étape consiste simplement à afficher une carte. Voici les étapes que j'ai suivies pour afficher la carte: 1) J'ai la clé google api, et configurez android.mainfest. J'ai ajouté des permissions: MAPS_RECEIVE, ACCESS_COARSE_LOCATION, INTERNET et ma clé google map v2 dans l'élément. 2) J'ai importé google-play-services_lib dans mon espace de travail. Construisez-le et ajoutez sa référence à mon projet. 3) Parce que j'ai utilisé Android 2.3.3 (api 10), j'ai donc utilisé SupportMapFragment au lieu de MapFragment. Voici ma mise en page:erreur inflating classe fragment google maps avec google maps

<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=".ShowMapActivity" > 
     <fragment android:id="@+id/map" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       class="com.google.android.gms.maps.SupportMapFragment "/> 
</RelativeLayout> 

Et voici mon code dans ShowMapActivity (il est étendu FragmentActivity)

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_show_map); 
     if(findViewById(R.id.map)!=null) 
     { 
      SupportMapFragment fragment = new SupportMapFragment(); 
      getSupportFragmentManager().beginTransaction().add(R.id.map,fragment).commit(); 
     } 
} 

Mais malheureusement, quand je lance l'application dans l'émulateur, je reçois toujours erreur dans le chat journal: Erreur lors du gonflement du fragment de classe et de com.google.android.gms.maps.MapFragment: assurez-vous que le nom de la classe existe, est public et possède un constructeur vide qui est public. EDIT: Voici mon chat journal:

05-26 13:52:25.457: E/AndroidRuntime(289): FATAL EXCEPTION: main 
05-26 13:52:25.457: E/AndroidRuntime(289): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.com.vogella.android.locationapi.maps/com.vogella.android.locationapi.maps.ShowMapActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.os.Looper.loop(Looper.java:123) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.ActivityThread.main(ActivityThread.java:3683) 
05-26 13:52:25.457: E/AndroidRuntime(289): at java.lang.reflect.Method.invokeNative(Native Method) 
05-26 13:52:25.457: E/AndroidRuntime(289): at java.lang.reflect.Method.invoke(Method.java:507) 
05-26 13:52:25.457: E/AndroidRuntime(289): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-26 13:52:25.457: E/AndroidRuntime(289): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-26 13:52:25.457: E/AndroidRuntime(289): at dalvik.system.NativeStart.main(Native Method) 
05-26 13:52:25.457: E/AndroidRuntime(289): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
05-26 13:52:25.457: E/AndroidRuntime(289): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.Activity.setContentView(Activity.java:1657) 
05-26 13:52:25.457: E/AndroidRuntime(289): at com.vogella.android.locationapi.maps.ShowMapActivity.onCreate(ShowMapActivity.java:22) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-26 13:52:25.457: E/AndroidRuntime(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
05-26 13:52:25.457: E/AndroidRuntime(289): ... 11 more 
05-26 13:52:25.457: E/AndroidRuntime(289): Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment : make sure class name exists, is public, and has an empty constructor that is public 

Alors, comment puis-je résoudre. Quelles étapes je suis manquant ou je me suis trompé
Merci pour votre aide, et désolé tout le monde parce que ma compétence d'écriture en anglais est mauvaise

+1

s'il vous plaît ajouter votre logcat – thepoosh

+0

@thepoosh: Merci pour vous répondre , voici mon logcat: java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.example.com.vogella.android.locationapi.maps/com.vogella.android.locationapi.maps.ShowMapActivity}: android.view. InflateException: ligne de fichier XML binaire n ° 6: erreur de gonflement du fragment de classe .... 05-26 13: 52: 25.457: E/AndroidRuntime (289): Causée par: android.support.v4.app.Fragment $ InstantiationException: Impossible d'instancier le fragment com.google.android.g ms.maps.SupportMapFragment: assurez-vous que le nom de classe existe, est public, et a un constructeur vide qui est public – Beginner

+0

Editer la question – thepoosh

Répondre

0

J'ai déjà eu exactement le même problème. Le problème était lié à ... trop long chemin d'accès à la bibliothèque.

Il semble que google-play-services_lib soit trop profondément imbriqué dans la structure des dossiers. Essayez de le copier à un autre endroit.

0

Si vous ne l'avez pas trouvé une solution, assurez-vous que l'activité où le SupportMapFragment doit être chargé étend android.support.v4.app.FragmentActivity