반응형

테스트 기기: 엔스퍼트 아이덴티티탭 (E201V)

안드로이드 버전: 이클레어(Eclair, 2.1), 프로요(Froyo, 2.2)



연구실에서 개발한 테스트용 앱을 아이덴티티탭(안드로이드 2.1)에 설치하려고 했는데 "응용프로그램이 설치되지 않았습니다."라는 메세지와 함께 아래와 같은 설치 실패 화면만 보게 되었다.


(그림 1) 아이덴티티탭에 설치되지 않는 프로그램



예전 개발환경에서는 (이클립스 + 안드로이드 sdk 수동설치) 문제없이 설치가 되었는데, 최근에 ADT (Android Developer Tools)에서 같은 코드로 프로젝트를 만들고 설치를 시도하니 안된다. Apk 파일만 SD카드에 따로 복사해서 "알 수 없는 소스" 옵션을 체크하고 설치를 시도해도 되지 않았다.

혹시 안드로이드 버전이 너무 낮아서 그런가 해서 아이덴티티탭을 프로요(2.2)로 펌웨어 업데이트를 했는데도 문제는 해결되지 않았다.



*해결의 실마리 (?)

예전 개발환경에 있던 프로젝트와 ADT에 있는 프로젝트의 차이점이 하나 있었는데, 참조하는 라이브러리 jar 파일의 위치였다.

예전 개발환경 (이클립스 + 안드로이드 sdk 수동설치)에서는 프로젝트 밑에 아무 폴더를 만들고(예: lib), 그 안에 jar 파일을 집어넣었다. 그리고 이클립스의 Java Build Path에서 해당 jar 파일을 참조하도록 선택했다.


반면에 ADT를 비롯해서 비교적 최신 버전의 안드로이드 개발환경(이클립스 플러그인)에서는 프로젝트 밑에 "libs" 폴더를 만들고, 그 안에 jar 파일을 복사해 넣으면 자동으로 참조가 된다.


(그림 2) ADT에서 안드로이드 프로젝트의 libs 폴더에 jar 파일을 추가하는 경우


그런데 문제는, 안드로이드 2.1 프로젝트에 대해서 이렇게 libs 폴더를 통해서 jar 파일을 추가해도 프로젝트 설정(Project Properties)에서는 보이지 않는 것이다.


(그림 3) 이상하게 libs에서 추가한 jar 파일 2개가 표시되지 않는다.



그래서 ADT에서도 다시 예전 방식대로 참조해 보았다. libs 대신 그냥 일반적인 폴더(이 예제에서는 lib)를 만들고, 그 안에 jar 파일을 추가하고,


(그림 4) libs 폴더 대신 lib 폴더 사용. 자동으로 jar 파일을 참조하지 않는다.


프로젝트 설정에서 수동으로 jar 파일을 아래 그림 5~그림 6과 같이 추가했다.


(그림 5) "Add JARs..." 버튼을 눌러서 수동으로 추가


(그림 6) 해당 프로젝트의 lib 폴더 밑에 있는 jar 파일을 복수 선택



그리고 Java Build Path 창에서 "Order and Export" 탭으로 가서, 체크되어 있지 않은 2개의 참조된 라이브러리를 체크해 주었다.


(그림 7) Order and Export 탭에서 참조 라이브러리를 체크한다.


위와 같이 설정한 뒤에 프로젝트를 새로 빌드하고 나서 설치를 시도해 보니, 아이덴티티탭에 문제없이 설치가 되었다.



(주의)

이 방법은 오히려 최신 버전의 안드로이드 버전에서는(경험상으로 4.0 이상) 오히려 앱 빌드가 안되는 문제를 초래할 수도 있다. 최신 버전의 안드로이드 플랫폼에서 개발할 때는 libs 폴더에 jar 파일을 추가해서 자동으로 참조되도록 하는 것이 좋다. 또한 jar 파일이 아니고 Projects 탭에 바로 프로젝트를 참조하는 것도 문제를 일으킬 소지가 크다.




반응형
블로그 이미지

Bryan_

,