Google Map API Android v2 : GoogleMap est null
Je suis en train d'explorer à l'aide de la MapView classe pour GoogleMap d'affichage, avec pas de chance, car la plupart des codes sont des exemples à l'aide de MapFragment que je ne veux pas.
Je suis en utilisant Google Maps API Android v2.
Au premier abord, juste pour le test avec ici, à partir de l'exemple de Google, j'ai réussi à obtenir le typique normal affichage de la carte.
public class POnlineMapView extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.online_map_activity);
}
}
Le code ci-dessus fonctionne parfaitement, qui montrent que tout a été mis en place correctement.
Je suis maintenant essayer d'utiliser la MapView classe pour manipuler les paramètres d'affichage comme le point central, mais il me semble que je suis l'obtention d'un objet null chaque fois que j'essaie d'obtenir la GoogleMap objet. Pourquoi est-ce donc?
public class POnlineMapView extends Activity {
private MapView myMapView;
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myMapView = new MapView(getApplicationContext());
Bundle b = getIntent().getExtras();
double longitude = b.getDouble("longitude");
double latitude = b.getDouble("latitude");
setContentView(R.layout.online_map_activity);
map = myMapView.getMap();
CameraUpdate center= CameraUpdateFactory.newLatLng(new LatLng(latitude,longitude));
CameraUpdate zoom=CameraUpdateFactory.zoomTo(17);
map.moveCamera(center); //this gives a NullPointerException, probably due to the myMapView.getMap() method?
map.animateCamera(zoom);
}
}
Qu'entendez-vous par là? Tu veux dire que la classe ne doit pas être l'extension de l'Activité?
OriginalL'auteur lyk | 2013-01-25
Vous devez vous connecter pour publier un commentaire.
Vérifier si Google Play Service sont installés (et mis à jour)
Voir Google Maps API Android v2 jette GooglePlayServicesNotAvailableException, de la date, SupportMapFragment.getMap() renvoie la valeur null
Veuillez également lire https://developers.google.com/maps/documentation/android/map (section de Vérifier la Carte de disponibilité)
OriginalL'auteur userM1433372
Ce qui semble être une vieille question, mais j'ai eu le même problème en essayant d'utiliser MapView.
En supposant que vous avez correctement importé le Google Play Services lib, vous devez vérifier si vous avez accès aux Services de Google, vous pouvez le faire dans votre méthode onCreate, et vous devez les initialiser les Cartes Google maps Android AP. vous pouvez le faire en ajoutant le code suivant à votre méthode onCreate
Si vous obtenez le SUCCÈS, alors que tout fonctionne jusqu'à présent.
Vous avez également à mettre en œuvre les réflexes de l'Activité lyfecycle et appeler le correspondant methond de votre carte de vue à l'intérieur de chacune de ces méthodes:
Enfin, vous devez vérifier que vous avez ajouté votre Google Maps API clé de votre fichier Manifeste:
vous pouvez trouver des instructions pour obtenir votre clé ici: https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api
Edit:
J'ai oublié de mentionner, vous devez également définir vos applications les autorisations sur le fichier manifeste
Cela doit être placé à l'intérieur du bloc d'application ...
OriginalL'auteur Eduardo Martinez
Merci, vous enfin m'a donné une idée pour initialiser la Carte par programmation, comment stupide j'ai supervisé 🙂
Bien, parfois il n'y a pas d'option pour utiliser MapFragment (ou SupportMapFragment à l'identique), c'est à dire lorsque vous souhaitez utiliser la carte à partir d'un fragment de! C'est en fait un cas très commun lorsque l'on travaille avec des onglets (ActionBar) où le motif est d'utiliser des fragments. Si vous avez votre propre fragment par onglet et dans ce fragment pour une carte que vous voulez gonfler votre mise en page qui contient un fragment de la MapFragment, et voila - bonne chance!
Maintenant, selon la MapView specs il est nullement dit que l'utilisation de la MapView est découragé ou obsolète, alors pourquoi devrais-je ne pas l'utiliser? Je n'ai pas envie de hacks dans le maintien de imbriquée fragments sans avoir le soutien de SDK ( même le récent soutien lib v13 semble avoir des bugs et imbriquées les fragments de la mise en page ne sont pas pris en charge ), donc à l'aide d'MapView tourné pour me BAISER.
Ci-dessous est mon CustomMapFragment-je utiliser la mise en page de l'inflation (permettant complexe de mise en page) et intégré de la carte, vous êtes les bienvenus. Vous pouvez également étendre le Fragment de soutien-lib plutôt que de SDK.
La onCreateView() la méthode la gonfle la mise en page (il suffit de fournir par vous) et prévoit la mise en page pour avoir viewgroup (relativelayout,linearlayout,etc) avec l'id "mapViewHolder" où la mapView sera joint à la disposition de la création. L'activité est à mettre en œuvre CustomMapFragment.Gestionnaire d'interface, sinon ClassCastException sera levée.
OriginalL'auteur comeGetSome
Une différence entre MapFragment et MapView est que vous devez gérer manuellement le cycle de vie de MapView, tandis que MapFragment prend soin d'elle par lui-même.
Vous devez appeler les méthodes suivantes de l'Activité parent/Fragment de la méthode correspondante.
J'ai vérifié cela avec RawMapViewDemoActivity dans les échantillons de Google Play Services, qui peut être installé dans la section Suppléments de Android SDK Manager.
L'échantillon a montré la carte à la première, et il a montré une page blanche une fois que j'ai commenté le 6 lignes de mMapView.onXXX().
Peut-être le cycle de vie est la raison pour laquelle la plupart des exemples que nous voyons partout utiliser MapFragment.
OriginalL'auteur Xingang Huang
Essayer de cette façon:
Pouvez-vous me dire ce qui l'api minimum utilisez-vous ?
Je crois que vous faites référence à cela? android:minSdkVersion="9"
Ensuite, vous devez utiliser
SupportMapFragment
parce que leMapFragment
est pour l'api de 12 ou plus. Thatz pourquoi son lancement cette exception.Je suis avec MapView, pas MapFragment. Parce que la carte sera de prendre le plein écran, il n'est pas nécessaire pour moi de mettre en œuvre MapFragment. Le sdk de la version d'incidence sur l'utilisation de MapView classe?
OriginalL'auteur GrIsHu
Je n'ai pas eu de chance avec la vue de la carte.
J'ai eu de la chance avec la MapFragment.
Essayez ceci:
OriginalL'auteur Dan Brough