1. 서론
-
카카오맵 API는 다음 링크에 가이드가 존재합니다.
http://apis.map.kakao.com/android/guide/먼저 사용했던 네이버 지도는 gradle에 한두줄 적고 설정하면 알아서 되었습니다만...
카카오맵은 가이드에 라이브러리 파일 추가시 어떻게 해야하는지 불편하고 모호한 점들이 있어서,
초보였던 제가 겪었던 시행착오 를 작성하여 공유 합니다.
2. 시행착오
1) 라이브러리 파일 추가 경로는?
- 가이드에는 아래처럼 적혀있습니다.
-
매우 초보인 저의 궁금증 및 문제:
1) so 확장자 파일은 뭐지?
2) 정작 2019년 7월 기준으로 최신 SDK 압축파일 까보니, 가이드에서 3개라는 파일이 4개로 늘어나 있음. (arm64-v8a 폴더?) 그대로 복붙하면 되는건가?
3) libs 폴더란걸 그냥 생성하고 똑같이 추가했으나 되지 않음. -
각 의미를 찾아보니:
1) 카카오의 SDK 파일인 ".so" 확장자 파일은 JNI library를 의미합니다.2) 'arm64-v8a'는 2019년 8월부터 구글플레이에 올라가는 앱 64비트를 대응하기 위한 네이티브 코드 라이브러리 소스를 의미. (안드로이드의 출발은 32비트였으나 2017년 이후로는 64비트 cpu를 지원하는 기기들로 변화하고 있기 때문) --> 즉 현재 대부분의 기기가 64비트이기 때문에, 가이드가 그 전에 작성된 것으로 추정됨. (즉 무조건 4개 파일 전부 추가하세요)
3) libs 폴더에 so파일 넣는건 과거 Eclipse 개발 환경에서 추가할 때의 경로. Android에서는 .jar파일은 libs 폴더, .so파일은 jniLibs 폴더를 생성하고 추가 해야합니다.
2) 키 해시는 뭘 입력 해야하는가?
- 콘솔에 들어가서 설정 > 일반 > 플랫폼 추가 - 안드로이드 시
아래처럼 키 해시를 입력 해야만 합니다.
만약 해당 키 해시가 등록되지 않으면, 라이브러리를 올바로 추가하고 개발을 잘 해도 화면에 나타나지 않습니다.
그런데 이 키 해시는 debug용과 release용 keyStore에 따라 달라집니다. 따라서 필요에 따라 해당 코드를 이용해서 키 해시를 입력하시면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
try{
PackageInfo info = getPackageManager().getPackageInfo("com.android.패키지 경로",PackageManager.GET_SIGNATURES);
for(Signature signature : info.signatures){
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("keyHash:",Base64.encodeToString(md.digest(),Base64.DEFAULT));
}
}catch(Exception e){
e.printStackTrace();
}
|
cs |
작성하다보니까 지도 개발 가이드 문서에는 없지만, 카카오 Android 개발가이드에 설명이 있었네요.
보다 설명이 더 자세히 나와있으므로 설명은 해당 링크 참고하시면 될거 같습니다.
https://developers.kakao.com/docs/android/getting-started#키해시-등록
Reference
- JNI Library 'so file' 추가: https://m.blog.naver.com/zoomen1004/220583927892
- 안드로이드 2019년 8월부터 구글 플레이에 올라가는 앱 64비트 대응하기: https://duzi077.tistory.com/284
'Dev > Android' 카테고리의 다른 글
[Android] 데이터 바인딩 개념 및 라이브러리 비교(Android Data Binding Library, Kotlin Android Extensions) (0) | 2019.09.02 |
---|---|
[Andorid] Activity와 AppCompatActivity, 그 외의 차이 (0) | 2019.09.02 |
[Andorid] ImageView 이미지 크기 자동맞춤 (0) | 2019.04.26 |
[Andorid] Resource(R.id / R.drawable) 를 문자열로 가져오기 (0) | 2019.04.26 |
[Android] Network 기능 구현 관련 (0) | 2018.10.02 |