이번에 Google Map을 사용할 일이 생겨서 연동을 하던 도중,

한 가지 에러를 발견했다. 에러 명은 add Marker null인데, 좀 너무 황당한 코딩 미스로 일어났던 오류다.

 

 

해결방법

 

 

add Marker null이 떴을 경우, Google Map이 제대로 불러와진 것인지 봐두어야 한다.

일반적으로 Google Map을 불러올 때, 우리는 

 

 

FragmentManager fragmentManager = getFragmentManager();
MapFragment mapFragment = (MapFragment)fragmentManager
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

 

 

위 코드를 onCreate에 넣어서 사용한다.

그리고 따로 메소드 오버라이딩을 통해서 onMapReady() 메서드를 불러올 것 이다.

 

여기서, 내가 한 실수는 getMapAsync() 메서드 이전에 google Map을 강제로 리플레시 시킨 것이다.

쉽게 설명하자면,

 

 

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);



onMapReady(googlemap);



FragmentManager fragmentManager = getFragmentManager();
MapFragment mapFragment = (MapFragment)fragmentManager
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

}

 

 

이렇게 해버린 것이다...

이렇게 하니까 당연히 google Map이 생성이 되지 않았는데 마커를 찍으니 될 리가 있나..

아무튼 결론적으로 addMarker null 오류를 발견하게 된다면, 

 

 

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);



FragmentManager fragmentManager = getFragmentManager();
MapFragment mapFragment = (MapFragment)fragmentManager
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);



onMapReady(googlemap);

}

 

 

이런식으로 되어 있는지 꼭 확인하길 바란다.

(참고로 onMapReady(googlemap); 이 부분은 google map 리플레시를

위해서 넣은 문법이니 포함시키지 않아도 된다.)

+ Recent posts