Я пытаюсь отобразить MapBox во фрагменте, но я получаю следующее сообщение об ошибке:MapBox не работает в фрагменте
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.mapbox.mapboxsdk.maps.MapView.onResume()' on a null object reference
Вот класс фрагмент карты:
public class Map extends android.support.v4.app.Fragment {
private MapView mapView;
public Map() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_map, container, false);
MapView mapView = (MapView) layout.findViewById(R.id.mapview);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
// Set map style
mapboxMap.setStyleUrl(Style.MAPBOX_STREETS);
// Set the camera's starting position
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(41.885, -87.679)) // set the camera's center position
.zoom(12) // set the camera's zoom level
.tilt(20) // set the camera's tilt
.build();
// Move the camera to that position
mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
});
return layout;
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}
Am Я что-то пропустил? Я проголосовал за эту ссылку: https://www.mapbox.com/help/first-steps-android-sdk/
См эту ссылку http://stackoverflow.com/questions/32601219/trying- to-put-a-map-in-a-fragment-activity/32601861 # 32601861 – Emil
Я использую Mapbox, все равно будет так же? @Boss –
Nahh .. Я нашел вашу проблему – Emil