Firebase 데이터베이스에서 데이터를 읽은 다음 해당 항목에서 배열을 만들고 해당 배열 목록의 마커가있는지도를 만들려고합니다. 나는이 예외가 활동 실행하려고하면onDataChange 메소드 내부에서 작업하기 Android Firebase 데이터베이스
는하지만 :
java.lang.NullPointerException: Attempt to invoke virtual method
'com.google.android.gms.maps.model.Marker
com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)'
on a null object reference
을 여기 내 코드입니다. 이해를 돕기 위해 의견을 읽으십시오.
mLocationDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dsp : dataSnapshot.getChildren()) {
LocationCurrent post = dsp.getValue(LocationCurrent.class);
Double latitude = Double.parseDouble(post.getLatitude());
Double longitude = Double.parseDouble(post.getLongitude());
currentLocationLatLng = new LatLng(latitude, longitude);
latlngs.add(currentLocationLatLng);
//Logging works fine I see all items of the latlngs array
Log.i("LAT LONGS IN", String.valueOf(latlngs));
//Same Exception points here
for(int i = 0 ; i < latlngs.size() ; i++) {
createMarker(latlngs.get(i));
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
}
//Exception points here too
protected Marker createMarker(LatLng latlngmthd) {
return mMap.addMarker(new MarkerOptions()
.position(latlngmthd)
.anchor(0.5f, 0.5f));
}
제 생각에는 onDataChange 메소드 내부의 데이터로 작업해야하지만 예외에서 볼 수 있듯이 맵 객체는 거기에 생성되지 않습니다. onDataChange에서 onMapReady를 이동할 수 없습니다. 그래서 누구나지도 객체를 만들고 onDataChange 메서드 안의 마커로 채울 수있는 방법에 대한 제안을 알고 있습니까?