Ubuntu 11.10 에서 ICS 빌드에러 수정


https://groups.google.com/d/topic/android-building/AgeruY7XIwQ/discussion


CtsVerifier에서 다음과 같은 오류가 발생하는 경우는 JAVA_HOME이 JDK6가 설치된 디렉터리를 가리키고 있지 않아서 발생합니다.


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>



JAVA_HOME을 JDK6로 설정

$ export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_30



Happy Coding~:)

zlib를 찾을수 없다는 빌드 오류가 발생하는 경우는 zlib를 설치한다.


host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so)

...

/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] Error 1


lib32z1-dev 설치

$ sudo apt-get install lib32z1-dev


Happy Coding~:)

Parameter의  constness가 맞지 않아 빌드 오류가 발생하는 경우 -fpermissive option을 추가한다.


host C++: libutils <= frameworks/base/libs/utils/RefBase.cpp
frameworks/base/libs/utils/RefBase.cpp: In member function ‘void android::RefBase::weakref_type::trackMe(bool, bool)’:
frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1
make: *** Waiting for unfinished jobs....

$ vi frameworks/base/libs/utils/Android.mk
-LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
+LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

참고
http://buildall.wordpress.com/2011/05/27/how-to-fix-problem-of-incompatibility-between-gcc-4-6-and-android-2-3-gingerbread/
http://stackoverflow.com/questions/10765787/passing-const-this-argument-discards-qualifiers-fpermissive


Happy Coding~:)

+ Recent posts