私のアプリにはGoogleマップが表示されており、場所を選択するための機能がいくつかあります。アクティビティはMapActivity
となり、それはFragmentActivity
に拡張されます。MapFragmentのNullPointerException。 FragmentActivityのGoogleMap
public class MapActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
initializeMap();
}
private void initializeMap() {
if (googleMap == null) {
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
if(mapFragment!=null){
mapFragment.getMapAsync(MapActivity.this);
}
// check if map is created successfully or not
if (null== googleMap) {
Toast.makeText(getApplicationContext(), "Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onMapReady(GoogleMap map) {
googleMap = map;
googleMap.setMyLocationEnabled(true);
}
}
このアクティビティが起動されると、initializeMapメソッドのmapFragmentオブジェクトにnullが返されるため、アプリがクラッシュします。このエラーは、getMap()
が廃止され、getMapAsync()
メソッドが使用されるため表示されましたが、私のmapFragment
オブジェクト自体はnull
です。
このNullPointerExceptionを回避するためにマップフラグメントを拡張するにはどうすればよいですか?用
https://developers.google.com/maps/documentation/android-api/start –