본문 바로가기

[Android]/허접 Programming Tips

Google Map 구글 지도 getFragmentManager() Deprecated 해결방법

지금 Google Map을 적용하다가 알게 된 사실인데, 저는 귀찮아서 사실 오래전에 작업한 프로젝트에서

Google Map(구글 지도) 적용 부분이 있어서 현재 프로젝트에 고대로 코드를 복사 붙여넣기로 작업을 하였습니다.


예전 프로젝트에서는 Google Map을 적용하는 데 있어 아래와 같이 프로그래밍을 했습니다.


<xml>

<fragment
android:id="@+id/google_map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
map:cameraTargetLat="15.127333"
map:cameraTargetLng="101.017438"
map:cameraZoom="6"
map:uiCompass="false" />

<java>

MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.google_map);
mapFragment.getMapAsync(this);



그런데! 

getFragmentManager() 요놈이 Deprecated 되었다고 뜨네요?? 그래서 Google Map(구글 지도) 적용하는 방법을 찾기 위해

Google 공식 사이트에 들어갔습니다!!


사이트https://developers.google.com/maps/documentation/android-sdk/start


공식 사이트에서는 아래와 같이 나와있네요??


<xml>

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:id="@+id/map"
   
tools:context=".MapsActivity"
   
android:name="com.google.android.gms.maps.SupportMapFragment" />

<java>

 SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
               
.findFragmentById(R.id.map);
        mapFragment
.getMapAsync(this);


[결론]

<xml>

(변겅 전) android:name="com.google.android.gms.maps.MapFragment"

(변경 후) android:name="com.google.android.gms.maps.SupportMapFragment"


<java>

(변경 전) MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.google_map);

(변경 후) SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.google_map);


그래서 저 또한 위와 같이 바꾸기로 하였습니다~!

늘 그렇겠지만, 처음에 deprecated 되었다고 뜨면 저 같은 경우는 Google에 접속하여

"android getFragmentManager() deprecated"라고 검색합니다.

검색하여 주로 StackOverFlow에 나와있는 답변을 보곤 하였는 데, 전혀 도움 되는 글이 없었습니다.


그래서 귀찮지만 Google 공식 사이트에 들어가니 바로 해결이 되었네요 ㅎㅎ;;

혹시라도 시간을 허비하고 있는 분들이 계실까봐 글 공유합니다~!