핸드폰에 안드로이드로 구글 지도를 표시하려고 하는데 빈 화면만 나오는 경우가 있습니다개발을 하면서 소스를 다른 컴퓨터에 복사해서 사용하는 경우 또는 google api에 패키지를 등록할 때 깜빡 하고 저장 버튼을 누르지 않은 경우 발생할 수 있습니다.


android google map blank


이런 경우 오류 메시지를 살펴보면


android google map blank


D/OpenGLRenderer: Swap behavior 0

E/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.

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: AIXxXxXxXXxXxXxXXXXXXxXXXXxXXXXXXXXN_L8

          Android Application (<cert_fingerprint>;<package_name>): 56:C8:12:AA:AA:AA:AA:AA: AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:A4:B8;copycoding.tistory.gpsmap

D/EGL_emulation: eglCreateContext: 0xa2605f00: maj 2 min 0 rcv 2

D/EGL_emulation: eglMakeCurrent: 0xa2605f00: ver 2 0 (tinfo 0xa26034f0)


API Key는 있지만 패키지에 연결된 SHA-1 값이 맞지 않아 인증 실패가 되었다는 메시지 입니다.

패키지를 등록 할 떄


android google map blank


항목 추가를 누르고 패키지와 SHA-1 지문을 입력하고 완료 만 누르면 반영이 되지 않습니다.


android google map blank


하단에 저장 버튼이 있어서 이것까지 눌려야 입력한 패키지가 반영이 됩니다만일 작업 컴퓨터가 변경이 되었다면 keytool로 다시 설치해서 SHA-1 값을 변경해서 저장하면 됩니다.


android google map blank


그러면 이번에는 지도가 잘 보입니다.


- copy coding -


keytool을 이용하여 키를 생성할 때에는 java가 설치 되어 있어야 합니다자바를 설치하고 path가 잡혀있지 않다면 path를 잡아 주고 작업을 하면 편합니다여러 가지 이유로 인하여 java path 를 잡을 수 없는 경우에는 절대경로를 이용하여 keytool을 실행해 주면 됩니다저의 경우는 D:\Java\jdk1.8.0_131에 자바를 설치 하였고 path는 잡지 않고 있습니다. 그런 경우 아래처럼 명령을 실행해서 keytool을 사용 합니다. path를 잡았다면 D:\Java\jdk1.8.0_131\bin\ 는 생략하면 됩니다.

 

D:\Java\jdk1.8.0_131\bin\keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android


keytool


C:\>D:\Java\jdk1.8.0_131\bin\keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

keytool 오류: java.lang.Exception: 키 저장소 파일이 존재하지 않음: C:\Users\user\.android\debug.keystore

java.lang.Exception: 키 저장소 파일이 존재하지 않음: C:\Users\user\.android\debug.keystore

        at sun.security.tools.keytool.Main.doCommands(Main.java:745)

        at sun.security.tools.keytool.Main.run(Main.java:343)

        at sun.security.tools.keytool.Main.main(Main.java:336)


[키 저장소 파일이 존재하지 않음] 이라는 오류가 발생하였군요이런 경우는 간단하게 생성을 할 수 있도록 [-genkey] d옵션을 추가해 줍니다.

D:\Java\jdk1.8.0_131\bin\keytool -genkey -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

 

만일 생성시 이름, 국가, ,시를 입력하도록 물어보면 그냥 엔터키를 눌러도 된다.


keytool


C:\>D:\Java\jdk1.8.0_131\bin\keytool -genkey -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

별칭 이름: androiddebugkey

생성 날짜: 2019. 11. 26

항목 유형: PrivateKeyEntry

인증서 체인 길이: 1

인증서[1]:

소유자: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown

발행자: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown

일련 번호: 6668f1e2

적합한 시작 날짜: Tue Nov 26 22:21:02 GMT+09:00 2019, 종료 날짜: Mon Feb 24 22:21:02 GMT+09:00 2020

인증서 지문:

         MD5: 80:3E: AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA

         SHA1: D4:06:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA         SHA256:45:7E:94:79:5E:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA

         서명 알고리즘 이름: SHA1withDSA

         버전: 3

 

확장:

 

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: B0 2C 9F AA AA AA AA AA AA AA AA AA AA AA AA AA.,.a.........a.

0010: AA 06 AA A2                                        ..<.

]

]


오류 없이 잘 생성이 되었습니다.


- copy coding -


핸드폰으로 안드로이드 앱을 테스트 하기 위해서 꼭 필요한 개발자 모드 작업을 해보았습니다. 제품별로 조금씩 다르긴 하지만 방법이 어렵진 않습니다이번에는 갤럭시 S8로 테스트를 하기 위해 설정을 해 보았습니다.

 

1. 설정 화면에서 하단 휴대전화 정보를 클릭 합니다.


Galuxy S8 개발자 모드


2. 휴대전화 정보에 들어가 소프트웨어 정보를 선택 합니다.


Galuxy S8 개발자 모드


3. 소프트웨어 정보에서는 빌드번호를 7회 연속 클릭 합니다.


Galuxy S8 개발자 모드


4. 다시 절정화면으로 돌아오면 하단에 개발자 옵션이 보입니다.

클릭하고 들어갑니다.

Galuxy S8 개발자 모드


5. 가장 중요한 USB 디버깅이 선택되어있지 않습니다클릭을 합니다.


Galuxy S8 개발자 모드


6. USB 디버깅을 허용합니다.

Galuxy S8 개발자 모드


7. 필요하다면 화면 켜짐 상태 유지도 선택해 줍니다.


Galuxy S8 개발자 모드


8. 안드로이드 스튜디오로 개발을 진행 하려면 연결된 컴퓨터의 디버깅 허용을 확인해 주고 테스트를 진행하면 됩니다.


Galuxy S8 개발자 모드

- copy coding -

전에 WindowsVisual SVN Server를 설치하고 eclipse와 연동하는 것을 설명한적이 있습니다이번에는 우분투에 subversion을 설치하고 eclipse와 연동을 하도록 하겠습니다.  ubuntusubversion을 설치 하는 것을 제외 하고는 작업하는 방법은 동일 합니다.  eclipse 부분은 설명을 간단히 진행 하도록 하겠습니다.  Visual SVN Server 4.0 연결은 다름 링크를 참고 하세요.

이클립스(eclipse) SVN 설치 연동


1. 설치

 

윈도우와 달리 우분투 에서는 간단한 명령어를 사용하여 설치가 가능 합니다.

$ sudo apt-get install subversion

 


2. 저장소 설정

 

프로젝트 작업을 진행 하기 위한 저장소를 하나 생성 합니다.

$ sudo mkdir /home/webadmin/svn

$ sudo svnadmin create /home/webadmin/svn/repository

생성된 디렉토리와 파일 정보입니다.


ubuntu subversion eclipse



3. 계정 설정

 

이제 생성된 저장소를 사용할 수 있는 사용자 계정을 생성 합니다.  ubuntu에 로그인 하는 계정이 아닌 SVN을 사용하기 위한 계정 입니다.


먼저 설정 폴더로 이동 합니다.

$ cd /home/webadmin/svn/repository/conf

어떤 파일들이 있는지 확인해 봅니다.

$ ls

authz, hooks-env.tmpl, passwd, svnserve.conf 4개의 파일이 있습니다.


ubuntu subversion eclipse


4개의 파일중 3개를 수정하여 사용자를 등록하고 접속을 허가하는 작업을 합니다.

 

먼저 접속 환경 설정을 수정 합니다. svnserve.conf 파일을 열고 편집을 합니다.

$ sudo vi svnserve.conf

파일이 열리면 우선 주석을 제거 하고 값도 수정해 줍니다.

[general]

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz 

 

수정한 파일의 내용은 아래처럼 생겼습니다.


ubuntu subversion eclipse


이제 passwd 파일을 이용하여 접속 계정을 수정 합니다.

$ sudo vi passwd

파일을 열면 최초 기본적으로 예시를 하기 위해 2개의 계정이 주석으로 생성되어 있습니다. 모두 삭제하고 다시 만들거나 추가해도 되는데 저는 그중 하나를 선택해서 주석을 제거하고 비밀번호를 설정 했습니다.

[users]

harry = H@rryh@@

# sally = sallyssecret


ubuntu subversion eclipse


저장소의 접근 권한을 authz 파일에 입력 합니다.

$ sudo vi authz

파일을 열고 생성한 계정에 일기권한(r) 쓰기권한(w)을 입력 합니다.

[/]

harry = rw


ubuntu subversion eclipse



4. 서비스 시작/종료


서비스 시작 명령어 입니다.

$ sudo svnserve -d -r /home/webadmin/svn/repository


종료는 다음 명령어를 사용 합니다.

$ sudo killall svnserve



5. eclipse와 연동

 

우선 market place에서 subversion을 설치 한 상태에서 작업을 진행 합니다.  프로젝트에 마우스를 대도 우측 버튼을 클릭하여 팝업 메뉴에서 Team을 선택 합니다.


ubuntu subversion eclipse


아직 한번도 소스를 SVN에 등록하지 않은 상태이기 때문에 현재는 두가지 옵션이 있습니다그중 Share Project를 선택 하여 소스를 등록 합니다. 


ubuntu subversion eclipse


접속 하려는 서버가 SVN이니 SVN을 선택 하고 Next 버튼을 클릭 합니다.


ubuntu subversion eclipse


Create a new repository location 라디오 버튼을 선택 하고 Next 버튼을 클릭 합니다.


ubuntu subversion eclipse


svn 주소를 입력 하고 Next 버튼을 클릭 합니다.  오랜만이라 그런지 Visual SVNhttps로 시작 해서 여기서 좀 헤매었습니다.


ubuntu subversion eclipse


폴더명을 그대로 사용하기 위해 체크 하고 Finish 버튼을 클릭 합니다.


ubuntu subversion eclipse


생성한 harry 계정 정보를 입력 하고 저장을 클릭 합니다.


ubuntu subversion eclipse


SVN 서버와 데이터를 비교하여 결과를 보여 주는데 처음 소스를 올리는 것이니 모두 + 표시로 나타납니다.


ubuntu subversion eclipse


프로젝트 명에 마우스를 놓고 우측 버튼을 클릭 해서 모두 Commit 합니다.


ubuntu subversion eclipse


커밋 하는 이유에 대해 comment 를 입력 하고 OK 버튼을 클릭 합니다.


ubuntu subversion eclipse


소스가 모두 서버에 반영되었습니다이제 끝없는 updatecommit의 늪에서 허우적거리면 됩니다.


1···45678910···13

+ Recent posts