반응형
출처 : http://www.aesop.or.kr/?document_srl=94797

보름  전쯤에 오드로이드 개발환경을 구축해 놓았던 노트북 하드디스크(SSD)가 날아가버려 열흘 정도 복구하느라 죽을 맛이었습니다. 다행히 2개월 전쯤의 상태로는 복구를 하였으나 그동안 모아둔 소중한 많은 자료들이 날아가버렸고  복구하는데 너무 많은 시간과 에너지를 낭비해 버렸네요. SSD가 HDD보다 훨씬 더 안전할 것으로 과신하여 백업을 제대로 해두지 못한 것이 문제였네요.

 

그건 그렇고 우분투(Ubuntu 9.10 Kalmic)이 새로 나와 업그레이드 하신 분들이 많을 텐데 안드로이드(android) 개발에는 문제가 많다는 이야기들이 있어 개발자들 가운데는 별로 추천을 받고 있지 않은 듯이 보입니다. 게다가 오드로이드 개발자 WiKi에서도 안드로이드 소스 컴파일에 대한 문제 해결 방안을 찾지 못한 것으로 되어 있는 등으로 우분투 9.04로 다시 돌아가거나 9.10 도입을 주저하는 개발자 분들도 많으시리라 생각됩니다.

 

오늘은 이에 대해 우분투 9.10에서도 안드로이드 및 오드로이드 개발에 문제가 없다는 밝은 소식을 전하려고 합니다. (다소 늦어진 것은 앞에서 이야기한 것처럼 복구하고 확인하는데 시간이 많이 걸렸습니다.  ^--^? ) 

 

1. 우분투 9.10 에서 $ sudo apt-get install sun-java5-jdk  를 적용할 수 없는 문제

   (시냅틱 꾸러미에서 빠져 있음)

 

여러가지 방안이 있지만 다음이 가장 안전하고 쉬운 해결 방안입니다.

 

시스템 > 관리 > 소프트웨어 소스 선택하면 [소프트웨어 소스] 창이 뜹니다.

여기서 [기타 소프트웨]'를 선택하여 '추가'버튼을 통해 다음 사항을 입력합니다.

 

deb http://kr.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://kr.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse


입력된 사항을 적용하고나면 [우분투 9.04 '잔티 자카롭' 제한된 소프트웨어]와 [추전하는 업데이트]가 표시되고 체크되어 있을 것입니다. 이를 꼭 확인하세요. 입력시 공백(space)에 주의하기 바랍니다.



확인되었으면 [시냅틱 관리자] 들어가셔서 새로고침 해서 꾸러미 목록 받아오시면 설치 가능합니다.

물론 터미널 창에서

 

$ sudo apt-get install sun-java5-jdk

 

도 가능합니다. (sun-java5-jdk 를 선택하면 sun-java-bin 과 sun-java-jre 는 종속관계에 의해 자동으로 선택됩니다.)

 

*단, 초심자의 경우는 sun-java6-jdk 를 함께 설치하여 사용하지 않을 것을 권장합니다.

(컴파일시 어느 버전을 사용할 지 설정하는 것이 쉽지 않기 때문입니다.)

 

혹시 접속이 잘 되지 않을 경우에는 다음과 같이 해보세요.

위에서와 마찬가지로 [소프트웨어 소스] > [기타 소프트웨]'를 선택하여 '추가'버튼을 통해 다음 사항을 입력합니다

 

deb http://archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

 

그리고 이 경우에는 반드시 [Ubuntu 소프트웨어]에서 [다운로드 위치:]를 [주 서버]로 선택하여 적용하기 바랍니다.

 

2. PRODUCT_POLICY 문제 (안드로이드 소스 컴파일이 처음부터 멈추는 문제)

    (./build_android.sh 실행하면 frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY (android.policy_phone). 멈춤. 현상)

 

android 소스 디렉토리 안에 있는 build/tools/findleaves.sh 파일의 89행을 다음과 같이 수정합니다.

 

find “${@:0:$nargs}” $findargs -type f -name “$filename” -print |

-->
find “${@:1:$nargs-1}” $findargs -type f -name “$filename” -print |

 

3. fprint 오류 문제 (컴파일 도중에 오류 발생 - 엄해진 문법 체크)

   (frameworks/base/tools/aidl/AST.cpp:10: error: ‘fprintf’ was not declared in this scope)

 
현재 가장 쉬운 해결 방안은 호스트 컴퓨터의 컴파일러 버전을 다운그레이드하는 것입니다.

 

[시냅틱 관리자] 에서 g++-4.3 를 선택하여 적용하거나 터미널 창에서 다음과 같이 g++-4.3 꾸러미를 설치합니다.

 

$ sudo apt-get install g++-4.3

 

(g++-4.3 을 설치하면 종속관계에 의해 cpp-4.3, gcc-4.3, gcc-4.3-base, libstdc++6-4.3-dev 가 함께 선택됩니다.)

 

gcc-4.3 과 g++-4.3 이 설치되었는지 다음과 같이 확인합니다. 

 

$ cd /usr/bin 

$ ls -l gcc* g++*

 

아마 현재 g++ -> g++-4.4 와 gcc -> gcc-4.4 로 링크되어 있을 것입니다. 다음은 다음과 같이 새로운 링크를 달아줍니다. (현재 디렉토리는 /usr/bin 입니다.)

 

$ sudo mv g++ g++.org

$ sudo mv gcc gcc.org

 

$ sudo ln -s g++-4.3 g++

$ sudo ln -s gcc-4.3 gcc

 

그리고 나서 제대로 링크되었는디 확인합니다.

 

$ g++ --version

g++ (Ubuntu 4.3.4-5Ubuntu1) 4.3.4

...

 

$ gcc --version

gcc (Ubuntu 4.3.4-5Ubuntu1) 4.3.4

...

 

모두 확인이 되었으면 다시 컴파일해봅니다.

 

참고로 eclair의 경우에는 g++-4.4 와 gcc-4.4 로 문제가 없습니다.

 

그럼 밝은 얼굴로 개발하시길 바랍니다.

 

한밭에서 naviro 

반응형

'Android' 카테고리의 다른 글

삼성 S3C6410 GPIO Pin 관련  (0) 2010.02.18
Static diagram of OpenCORE Player Engine  (0) 2010.02.10
StageFrighter OverView  (0) 2010.02.10
Posted by Real_G