Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

운기의 블로그

안드로이드 스튜디오에서 카카오 지도 API 사용하기 part #3 본문

안드로이드

안드로이드 스튜디오에서 카카오 지도 API 사용하기 part #3

운띠야 2020. 1. 4. 00:10

키 해시 까지 추가하고 나면 이제 카카오 개발자에서 제공해주는 sdk를 다운받고 안드로이드에 추가해 주면 된다. 

카카오 개발자에 아주 친절하게 나와있으니까 참고해도 충분할꺼 같다.

참고 : http://apis.map.kakao.com/android/guide/#step2


 

카카오 개발자에서 다운 받은 sdk 폴더 입니다.

 

 

 

저는 키해시를 다운받은 후 새롭게 생성하여 작업을 진행했습니다. 

우선 첫번째 빨간줄이 쳐진곳에 원래는 android 라고 되어있습니다.

그곳을 클릭하셔서 project를 클릭하여 변경해 줍니다.

 

1. app -> libs -> jar 파일을 넣어준다.

2. app -> src -> main 에서 jniLibs 폴더를 만들어 주고 3개의 폴더를 넣어준다.

(저는 폴더자체를 복사하면 에러가 나서 안드로이드에서 직접 폴더를 만들고 so파일만 복사해서 각각 넣어줬습니다.)

 

 

다음으로는 manifest.xml 파일로 넘어와서 권한 몇개와 카카오에서 발급받은 네이트브 앱 키를 추가해줍니다.

2개의 권한과 네이티브 앱 키 추가

 

 

아래 그림은 이제 제가 만들고자 하는 앱의 모습입니다. 

LinearLayout안에 주소검색란은 textview로 잡아 두고,

스피너는 생략한 상태에서 RelativeLayout을 이용하여 지도를 

띄울 예정으로 코드를 작성했습니다.

 

 

작성된 레이아웃에 지도를 띄우기 위해서 자바코드를 작성해줍니다.

 

두개의 소스는 같은 소스입니다. 오류 때문에 소스가 가려져서 두개를 이런식으로 올린겁니다.

MapView를 이용하여 지도를 띄우려고 했지만, 오류가 납니다. import를 해주면되는데

아무리 찾아봐도 자꾸 클래스 생성하라는 문구만 나오기만 합니다.....

(처음 api를 사용하는거라 이곳에서 한참 헤맸습니다...ㅠㅠ)

 

이걸 해결하기 위해서는 build.gradle(Module: app)으로 가서 의존성을 추가해줘야만 합니다.

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

 

 

추가하고 나면 드디어 아래 사진 처럼 MapView를 import 할 수 있게 됬습니다 !!! 

여기서 꼭 net. daum. mf. map. api 를 선택해 주셔야 합니다.

그리고 실행시키면 ~~~ 

(저는 핸드폰 개발자모드 켜놓고 작업하고 있습니다 !!)

 

역시나 오류.... 

(핸드폰에는 오른쪽 하단 끝에 조그만하게 kakao 라고 적혀있고 지도가 뜨지 않습니다...)

이 오류 또한 찾아 헤맨 결과 버전 문제로 밝혀졌습니다. 

 

 

처음 설정된 안드로이드 타겟은 29였고, 이 에러는 28이상에서 나오는 문제였습니다. 

타겟 28부터 안되고, 27이하로 작동하는거 같습니다.

 

제 핸드폰은 갤럭시s8 이기 때문에 26으로 맞춰주었습니다.

그리고 타겟sdk버전 27도 테스트해봤는데 지도 모양이 잘 나옵니다. 

 

 


수정 할 내용이 있습니다. 

위에서 언급하였던 targetSdkVersion에 관한건데 28 이상부터는 안된다고해서 버전을 강제로 내려줘서 작동시켰습니다.

이 부분에 관해 더 찾아봤는데 

 

https://devtalk.kakao.com/t/api/80825/7

 

저와 같은 문제로 고민하시는 분이 계셔서 글을 읽다보니 다른 해결책이 존재하는걸 알게 되었습니다.

방법은 아래 그림을 보고 따라해주시면 감사하겠습니다.

 

app -> res 로 들어간 후 xml 이라는 폴더를 생성해 줍니다. 

그 이후 xml 폴더 안에서 network_security_config.xml 파일을 생성해주고 작성해주시면 됩니다. 

 

작성이 다 되신 분은 manifest파일로 가서 방금 만들어준 xml 속성을 추가해 줍니다.

이 방법으로 해도 잘 실행됩니다!!!!!