Ubuntu 11.10 업데이트 후 자동으로 설치되었는지 확인은 되지 않지만 OpenJDK가 설치 되어 있습니다.
android build시 gingerbread까지는 OpenJDK로 build하여도 문제가 없는데 ICS build시 아래와 같은 에러가 발생합니다.
error: error reading out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/javalib.jar;
invalid header field
1 error
make: *** [out/target/common/obj/APPS/FrameworksCoreSystemPropertiesTests_intermediates/classes-full-debug.jar] 오류 41
googling 하여 보니 OpenJDK로 build는 가능하나 Sun JDK를 사용하기를 권장하는 것 같습니다.
synatic에서 OpenJDK를 삭제하시고 Sun JDK로 설치하시고
[~/projects/ICS]$ sudo update-alternatives --config jar
[sudo] password for codewalker:
대체 항목 jar에 대해 (/usr/bin/jar 제공) 2개 선택이 있습니다.
선택 경로 우선순 상태
------------------------------------------------------------
* 0 /usr/bin/fastjar 100 자동 모드
1 /usr/bin/fastjar 100 수동 모드
2
/usr/lib/jvm/java-6-sun/bin/jar 63 수동 모드
기본 사항[*]을 사용하려면 엔터, 다른 것을 사용하려면 번호를 입력하십시오: 2
jar도 위와 같이 java-6-sun/bin/jar를 선택하십시오.
http://groups.google.com/group/android-building/browse_thread/thread/f82cc424d451e409/91e29dac50ee1970?show_docid=91e29dac50ee1970
아직도 ICS AOSP가 빌드가 되지 않고 있습니다.
Preparing output jar [/home/codewalker/projects/ICS/out/target/common/obj/APPS/WAPPushManager_intermediates/proguard.classes.jar]
Copying resources from program jar [/home/codewalker/projects/ICS/out/target/common/obj/APPS/WAPPushManager_intermediates/classes.jar]
target Java: FrameworksServicesTests (out/target/common/obj/APPS/FrameworksServicesTests_intermediates/classes)
target Dex: android.core.tests.libcore.package.com.no-core-tests-res
target Dex: android.core.tests.libcore.package.dalvik.no-core-tests-res
target Dex: android.core.tests.libcore.package.libcore.no-core-tests-res
target Dex: android.core.tests.libcore.package.org.no-core-tests-res
target Dex: android.core.tests.libcore.package.sun.no-core-tests-res
target Dex: android.core.tests.libcore.package.tests.no-core-tests-res
이 단계에서 top을 해 보면 java가 몇개 돌고 있고 메모리를 거의 다 사용하고 있어서 시스템이 거의 동작하지 않고 build 역시 안되는 것 같습니다. 여기서 해결이 안되네요. ㅡㅡ;
https://groups.google.com/group/android-building/browse_thread/thread/1d01d0cd635c7f9e
여기 설명대로 -j 옵션을 없애니 컴파일이 계속되네요. 이해가 안가네요.
결과 Ubuntu 11.10 최신 버전을 사용하고 있었는데 OS가 문제가 있어서 다시 설치해야 하서 결국 Google에서 recommend하는 10.04로 재설치 하였습니다.
그런데 package/app들 build하다가 아래 링크의 설명 처럼 에러가 발생합니다.
http://rxwen.blogspot.com/2011/08/fix-bad-class-file-error-android-build.html
eclipse를 설치하고 나면 jar가
fastjar로 바뀝니다.
그래서 결국 android ICS build 하려면 jar를 다시 설정해 주셔야 합니다.