を使用しているときにコールバックを使用するとエラーが発生します。getMap()
は推奨されていません。エラーがスローされないようにこのコードを更新する方法に関するアイデア?あなたは一度だけgetMapAsync()
を呼び出す必要があり、マップの準備ができたときに、onMapReady()
コールバックはあなたにGoogleマップの参照を与えるマップgetMapAsync()が機能しない
05-26 22:50:13.419 12576-12576/com.example.kdotz.zoo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.kdotz.zoo, PID: 12576 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.animateCamera(com.google.android.gms.maps.CameraUpdate, com.google.android.gms.maps.GoogleMap$CancelableCallback)' on a null object reference
public class ZooMapFragment extends SupportMapFragment implements OnMapReadyCallback {
public static ZooMapFragment getInstance(){
ZooMapFragment fragment = new ZooMapFragment();
return fragment;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
CameraPosition position = CameraPosition.builder()
.target(new LatLng(39.7494, -104.9498))
.zoom(16f)
.bearing(0.0f)
.tilt(0.0f)
.build();
getMapAsync().animateCamera(CameraUpdateFactory.newCameraPosition(position), null);
getMapAsync().setMapType(GoogleMap.MAP_TYPE_HYBRID);
getMapAsync().setTrafficEnabled(true);
getMapAsync().getUiSettings().setZoomControlsEnabled(true);
MarkerOptions options = new MarkerOptions().position(new LatLng(39.7500, -104.9500));
options.title("Zoo");
options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
getMapAsync().addMarker(options);
getMapAsync().setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
marker.showInfoWindow();
return true;
}
});
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(getString(R.string.pins_feed))
.build();
PinsApiInterface pinsApiInterface = adapter.create(PinsApiInterface.class);
pinsApiInterface.getStreams(new Callback<List<Pin>>() {
@Override
public void success(List<Pin> pins, Response response) {
for(Pin pin: pins){
Log.e("Zoo", pin.getName());
}
}
@Override
public void failure(RetrofitError error) {
}
});
}
@Override
public void onMapReady(GoogleMap googleMap) {
// Add a marker in Denver, Zoo
// and move the map's camera to the same location.
LatLng denverZoo = new LatLng(39.7500, -104.9500);
googleMap.addMarker(new MarkerOptions().position(denverZoo)
.title("Marker in Denver Zoo"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(denverZoo));
}
}
エラーは何ですか? logcat出力を投稿してください – Nabin
'05-26 22:50:13.419 12576-12576/com.example.kdotz.zoo E/AndroidRuntime:致命的除外:メイン プロセス:com.example.kdotz.zoo、PID:12576 java .lang.NullPointerException:仮想メソッド 'void com.google.android.gms.maps.GoogleMap.animateCamera(com.google.android.gms.maps.CameraUpdate、com.google.android.gms.maps.GoogleMap $)を呼び出そうとしていますCancelableCallback) 'ヌルオブジェクトリファレンスで' –