2011년 10월 29일 토요일

최신 AOSP 의 CtsVerifier 에서의 빌드 에러.


얼마전 복구된 AOSP 소스를 받아 빌드해 보면 CtsVerifier 에서 아래와 같은 에러 메세지를 뿜으면서 빌드에 실패한다.

cts/apps/CtsVerifier/src/com/android/cts/verifier/PassFailButtons.java:191: onCreateDialog(int,android.os.Bundle) in android.app.Activity cannot implement onCreateDialog(int,android.os.Bundle) in com.android.cts.verifier.PassFailButtons.PassFailActivity; attempting to assign weaker access privileges; was public
    private static <T extends android.app.Activity & PassFailActivity>


이는 Sun JDK 가 아닌, Open JDK 를 쓰기 때문이다. Ubuntu 기본 JDK는 Open JDK 다.
Open JDK 가 아직은 좀 불안정하다고 한다. Google 측에서도 Sun JDK를 권장하고 있다.
자신이 쓰고 있는 jdk 를 확인해보자.



$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.04.2)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)


Open JDK를 쓰고 있음을 알 수 있다.

아래의 명령으로 Sun JDK 를 설치, 사용하도록 설정한다.


$ sudo add-apt=repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
$ sudo update-java-alternatives -s java-6-sun


이제 다시 java 버전을 확인해보면, 아래와 같이 Sun JDK를 쓰고 있음을 알 수 있다.


$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)




이제, 빌드하면 성공할 것이다.

댓글 없음:

댓글 쓰기