*개발

안드로이드 앱에 카카오맵 띄우기

㉰짐。 2020. 12. 8. 17:35

기본 가이드는 apis.map.kakao.com/android/guide/에 나오는데, 이걸로 해결을 절대로 못 본다..

다행히도 같은 고민을 한 사람이 많아서, 내가 써먹으려고 자료를 모아둠.

 

1. SDK 다운로드 및 라이브러리 파일 추가.

 

이건 특별한 거 없이 apis.map.kakao.com/android/guide/에 있는 그대로 하면 됨.

키 해시는 무작정 앱만들기 4에 나온 방법대로 하단부 Terminal에서

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

를 입력하자.

 

openSSL이 안 깔려있으면 설치해야 하는데 그건 [Windows] 윈도우에서 OpenSSL 설치하는 방법 : 네이버 블로그를 참고한다.

AndroidManifest.xml에 Permission과 APP KEY추가는

Permission은 Manifest 아래에, APP KEY는 application 아래에 넣으면 됨.

 

2. build.gradle(Module)에 의존성 추가.

들어가서 dependancy의 implementation 맨 아래에

 

implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/libDaumMapAndroid.jar'

 

두 줄을 추가한다.

의존성 건드렸으면 Sync해주는 거 잊지 말자.

mynamewoon.tistory.com/4를 참고했다.

 

3. HTTP 데이터 불러오기 허용.

나는 안드로이드 - Cleartext HTTP ... not permitted 예외 해결 방법에 나온 대로 AndroidManifest의 application 태그에서 android:usesCleartextTraffic를 true로 설정해서 쉽게쉽게 해결했다.

android:usesCleartextTraffic="true"

이 줄을 application 태그 안에 추가한다.

 

근데 제대로 하려면 [Android] 카카오맵 API 사용 설정 및 각종 오류 해결의 만났던 오류들에 있는 것처럼 resource에 xml 파일을 추가해주는 게 맞는 것 같다

나중에 고쳐야지

 

4. 프래그먼트에 맵뷰 추가.

mynamewoon.tistory.com/4에서 한 대로 RelativeLayout을 단순 이용하는 게 제일 깔끔해보인다.

근데 나는 apis.map.kakao.com/android/guide/에서 나온 걸 그대로 써먹었다.

제대로 입력이 안 되니까 링크에서 봐줘

 

5. 코드에 맵뷰 추가.

나는 코틀린 쓰는데 있는 놈들이 죄다 자바다.

그리고 액티비티가 아니라 프래그먼트 쓰는 놈도 없고

 

val mapView = MapView(activity)
val mapViewContainer: ViewGroup = root.findViewById(R.id.map_view)
mapViewContainer.addView(mapView)

 

이거 써주면 된다.

프래그먼트 안 쓰고 액티비티 단에서 해결하려면 MapView(this)만 쓰면 됨.

 

root는 사전입력돼있을텐데 val root = inflater.inflate(R.layout.fragment_home, container, false) 이거고

import는 import net.daum.mf.map.api.MapView 요건데 gradle 잘 채웠으면 자동완성 될거다

 

여기까지 했으면 지도가 뜨는 모습을 확인할 수 있다

근데 내 맘대로 움직이진 않네

이건 다음에 찾아봐야겠다