아마추어 팀블로그

구글 맵스 프로젝트를 생성하고 실행해보자 본문

IT/IT 개발

구글 맵스 프로젝트를 생성하고 실행해보자

건강한 탓치 2015. 3. 8. 08:30


지난 번엔 안드로이드 개발 환경을 설정하고 빈 프로젝트를 하나 생성하여 에뮬레이터에서 실행화면을 확인하는 단계까지 수행해보았습니다.

관련글: 2015/03/07 - [개발/안드로이드] - 안드로이드 개발 환경 설정하고 첫 프로젝트 생성하는 방법


오늘은 빈 프로젝트가 아닌 구글 맵스 프로젝트를 생성해보도록 하겠습니다. 우선 안드로이드 스튜디오(Android Studio)를 실행합니다. 그럼 지난 번에 생성했었던 MyApplication 프로젝트가 등장합니다. 계속 한 프로젝트를 개발 중인 상태라면 이런 배려가 고맙겠지만 전 새로운 프로젝트를 생성하고자 하니 일단 이 프로젝트를 닫도록 하겠습니다. File >> Close Project를 클릭하여 프로젝트를 닫습니다.



그런 다음 앞 문서에서 살펴봤던 것처럼 Start a new Android Studio project를 클릭하여 New Project 창을 띄웁니다. 이번 Application name에는 My Maps라고 쓰도록 해보죠. Next를 눌러 Phone and Tablet을 선택하고, Minumum SDKAPI 15를 그대로 사용하기로 한 뒤 Next를 다시 누릅니다. 이제 Add an activity to Mobile 창입니다. 지난 번엔 Blank Activity를 선택했지만 이번에는 Google Maps를 사용해볼 예정이므로 Google Maps Activity를 선택하고 Next를 눌러 다음 단계로 넘어가도록 하죠. 이제 Finish를 누르면 프로젝트로 바로 생성됩니다.


프로젝트 화면은 Blank Activity보단 단순합니다. 왼쪽에는 폴더 트리가 보이고 오른쪽 작업 화면에는 MapsActivity.java 파일과 google_maps_api.xml 파일이 보이네요.



이제 상단 메뉴바의 Run > Run 'app'을 선택하여 어플리케이션을 실행해 보도록 하겠습니다. 이번에도 Nexus 5 에뮬레이터를 사용하기로 하죠. Choose Device 화면에서 Launch emulator 라디오박스를 선택하고 OK를 누르면 됩니다. 그럼 바로 새 창에서 가상 기기가 구동됩니다.


하지만 왠일인지 위와 같이 구글 맵스(Google Maps)는 뜨지 않고 하얀 화면만 보입니다. Google이란 글귀가 왼쪽 하단에 있는 것으로 보아 실행이 되긴 한 것 같은데 말이죠. 흰 바탕만 보이는 이 현상의 원인을 파악하기 위해 안드로이드 스튜디오 하단의 디버그 로그를 보도록 하겠습니다. (PC명과 시리얼번호는 변경)


03-03 08:49:48.768    1922-2010/com.example.xxxx.mymaps E/Google Maps Android API﹕ Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.

03-03 08:49:48.773    1922-2010/com.example.xxxx.mymaps E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com)

    Ensure that the "Google Maps Android API v2" is enabled.

    Ensure that the following Android Key exists:

    API Key: YOUR_KEY_HERE

    Android Application (<cert_fingerprint>;<package_name>): AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA;com.example.

xxxx.mymaps

03-03 08:50:02.134    1922-2010/com.example.xxxxx.mymaps E/Google Maps Android API﹕ Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).


자세히 읽어보니 권한 문제가 있어보입니다. Google Maps Android API v2가 활성화 되었는지 확인해보라면서 API Key를 제시합니다. 다시 살펴보니, google_maps_api.xml 파일에 다음과 같이 TODO 문구가 있습니다. (PC명과 시리얼번호는 변경)


    <!--

    TODO: Before you run your application, you need a Google Maps API key.


    To get one, follow this link, follow the directions and press "Create" at the end:


https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=

AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA%3B

com.example.xxxxx.mymaps


    You can also add your credentials to an existing key, using this line:

    AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA;com.example.

xxxxx.mymaps


    Once you have your key (it starts with "AIza"), replace the "google_maps_key"

    string in this file.

    -->


즉, 구글 페이지에 접속해서 무언가 enable 시켜주어야 한다는 것이죠. 당장 본문의 링크를 복사하여 Google Developers Console에 접속해보겠습니다.




즉, Google Maps Android API v2에 애플리케이션을 등록해 주어야 사용이 가능한 것이죠. 아래 I agree that my use of any services and related APIs is subject to my compliance with the applicable Terms of Service.에 체크를 하고 동의 및 계속하기를 클릭해줍니다.



찬찬히 읽어보니, 클라이언트 Android 기기에서 현재 프로젝트로 생성된 앱으로 Google API를 사용하면, Google에서 이 애플리케이션을 식별하는 용도로 사용하는 듯 합니다. 만들기를 클릭해줍니다. 그럼 다음 화면과 같이 Android 애플리케이션용 키가 생성됩니다. 이 중 40개의 문자로 이루어진 API 키를 복사해주세요.



복사한 API 키를 이제 My Maps 프로젝트에 붙여넣을 차례입니다. 두 개의 파일을 확인해야하는데요, 우선 google_maps_api.xml의 YOUR_KEY_HERE 문구를 복사한 API 키로 대체합니다. (아래 예시의 API 키는 XXX...XXX로 변경하였습니다.)


    <string name="google_maps_key" translatable="false" templateMergeStrategy="preserve">

        YOUR_KEY_HERE

    </string>


    <string name="google_maps_key" translatable="false" templateMergeStrategy="preserve">

        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    </string>


그런 다음 이렇게 google_maps_key라는 이름으로 만든 API 키가 실제로 사용되었는지 확인해봐야겠죠. MyMaps >> app >> manifests >> AndroidManifest.xml 파일을 열어 meta-data 중 com.google.android.maps.v2.API_KEY라는 이름의 값을 확인해봅시다.



위 캡쳐화면에서 API_KEY의 value 위에 마우스를 올리면 @string/google_maps_key가 참조되어 사용됨을 볼 수 있습니다. 즉, google_maps_api.xml에서 정의한 google_maps_key가 여기에 제대로 반영되었다는 뜻이죠. 그럼 다시 run 'app'을 선택하여 실행한 화면은 어떨까요?



위와 같이 이젠 정상적으로 구글 맵이 실행됩니다. 중간에 우여곡절이 있었지만 어쨋든 Google Maps Activity 실행에 성공했습니다. 뿌듯하네요. 2강은 여기서 마치도록 하겠습니다. 다음은 어떤 프로젝트를 만들어볼까요?





7 Comments
댓글쓰기 폼