이번에 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 리플레시를
위해서 넣은 문법이니 포함시키지 않아도 된다.)
'에마이의 전문분야 > Develop' 카테고리의 다른 글
무료 코딩 교육 사이트 '생활코딩 - 오픈튜토리얼스' (0) | 2018.10.09 |
---|---|
[당모사-Develop편]세계 최고의 질의응답 개발자 커뮤니티 'stack overflow' (0) | 2018.09.27 |
[당모사-Develop편]한 주간의 안드로이드 이슈를 알아보자 'Android Weekly' (0) | 2018.09.25 |
[당모사-Develop편]개발 언어 순위 집계 사이트 'TIOBE' (0) | 2018.09.19 |
[당모사-Develop 편] 실무 개발자들의 커뮤니티 'okky' (0) | 2018.09.18 |