2013-04-28 3 views
0

Salut i utiliser google map v2 et si je lance l'applicationcarte Google Android v2

public class SocMap extends Activity { 

} 

carte ouverte mais je si exécuter l'application

public class SocMap extends FragmentActivity { 

} 

crash application

erreur:

04-28 15:10:03.405: E/AndroidRuntime(12041): FATAL EXCEPTION: main 
04-28 15:10:03.405: E/AndroidRuntime(12041): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.socmap/com.example.socmap.SocMap}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 
04-28 15:10:03.405: E/AndroidRuntime(12041): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 
04-28 15:10:03.405: E/AndroidRuntime(12041): Caused by: java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment 

Répondre

1

Si vous souhaitez implémenter Google Maps dans votre application lication et vous voulez que votre application cible l'API < 11 alors vous devrez utiliser le FragmentActivity. FragmentActivity fait partie de la bibliothèque google-support-v4 et vous donne essentiellement la prise en charge du fragment pour le système avant le niveau 11 de l'API. Dans ce cas, vous devez importer cette bibliothèque. vous pouvez avoir une idée de la façon dont il est fait en lisant l'étape 4 de ce blog je l'ai écrit sur l'intégration de Google Maps:

Google Maps API V2

Il vous suffit de se rappeler que si cela est la façon dont vous allez vous devez utiliser la SupportMapFragment objet pour votre carte au lieu de la MapFragment vous utilisez actuellement.

Si d'autre part vous développez votre application au niveau API 11 et supérieur, cette étape n'est pas nécessaire et vous pouvez simplement utiliser un Activity simple avec un MapFragment.

0

Dans votre mise en page, il ressemble à votre aide d'un MapFragment. Utilisez android:name="com.google.android.gms.maps.SupportMapFragment" à la place et dans votre onCreate, obtenir le MapFragment comme ceci:

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFragment); //your SupportMapFragment's id will need to be set to this in your layout.