지난주에 면접 본 회사에서 나온 말중에 GPS신호 받아서 지도에 뿌려주고 뭐 이런거 물어봤었는데 되긴 되는데 나는 해보진 않았던거라 생각나서 해봤다.
그 중에 구글 지도 화면에 뿌려줄때 삽질했던걸 나중에 까먹고 반복할까봐 여기에 정리해둔다.
개발할때는 debug용 인증서 지문을 구글 사이트에 등록해놓는게 좋다.
안드로이드 스튜디오에 내장된 debug.keystore의 위치는
macOS : ~/.android/debug.keystore
keytool -list -v -keystore ~/.android/debug.keystoreWindows : %USERPROFILE%.androiddebug.keystore
keytool -list -v -keystore %USERPROFILE%.androiddebug.keystore
디버그용 키 sha1값을 등록하는 이유는 보통 개발할때 밀어넣기 하면 툴은 기본적으로 디버그용 키를 가지고 apk를 만들어 넣기 때문에 디버그용 키를 등록 안해놓으면 구글 지도가 안나옴.
Logcat엔 아래왜 같은 에러도 뜸
이런 오류남.
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로 안만들고 맵뷰로 만들면 저거 꼭 확인하시길
답글 남기기