구글맵 사용하는 앱 개발할때 깜빡하기 쉬운 오류

Google 지도 서울

지난주에 면접 본 회사에서 나온 말중에 GPS신호 받아서 지도에 뿌려주고 뭐 이런거 물어봤었는데 되긴 되는데 나는 해보진 않았던거라 생각나서 해봤다.

그 중에 구글 지도 화면에 뿌려줄때 삽질했던걸 나중에 까먹고 반복할까봐 여기에 정리해둔다.

Google API 관리자

개발할때는 debug용 인증서 지문을 구글 사이트에 등록해놓는게 좋다.

debug keystore

안드로이드 스튜디오에 내장된 debug.keystore의 위치는

macOS : ~/.android/debug.keystore
keytool -list -v -keystore ~/.android/debug.keystore

Windows : %USERPROFILE%.androiddebug.keystore
keytool -list -v -keystore %USERPROFILE%.androiddebug.keystore

디버그용 키 sha1값을 등록하는 이유는 보통 개발할때 밀어넣기 하면 툴은 기본적으로 디버그용 키를 가지고 apk를 만들어 넣기 때문에 디버그용 키를 등록 안해놓으면 구글 지도가 안나옴.
Logcat엔 아래왜 같은 에러도 뜸

Google Maps API error

이런 오류남.

Google Maps Android API: Authorization failure.  Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
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:

개발 다하면 릴리즈용 keystore로 만든 키로 빌드해서 업로드 하고 그전까진 꼭 이렇게 디버그용 쓰는게 편함.

그리고 하나 더

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mapView = (MapView) findViewById(R.id.viewMap);
        mapView.onCreate(savedInstanceState);
        mapView.getMapAsync(this);
    }

    @Override
    public void onResume(){
        super.onResume();
        mapView.onResume();
    }

구글 개발자 사이트 에선 fragment로 만들어서 그런건지 mapView에 onCreate랑 onResume 부분이 없는데 이거 때문에 왜 화면이 나오다 마는건지 그리고 터치해도 뭔가 이동도 잘 안되고 한참 삽질했었음.
fragment로 안만들고 맵뷰로 만들면 저거 꼭 확인하시길


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다