Android系統編譯過程中常見問題匯總(1)

1、問題一:/bin/bash: bison: 未找到命令

 解決方法:$ sudo apt-get install bison

 

2、問題二:

You are attempting to build with the incorrect version of java.

Your version is: /bin/bash: java: 未找到命令.

The correct version is: 1.5.

 解決方法:

註意:必須使用1.5的JDK版本。不能使用1.6等其他版本。

(1)       下載

在sun官網上下載jdk-1_5_0_22-linux-i586.bin。註意不是jdk-1_5_0_22-linux-i586rpm.bin

(2)       部署

進入jdk-1_5_0_22-linux-i586.bin所在目錄

cd ~

賦予該bin文件可執行屬性

chmod +x jdk-1_5_0_22-linux-i586.bin

一直回車跳過協議到最後一行:

Do you agree to the above license terms? [yes or no]

鍵入yes回車,開始解壓。默認解壓到當前目錄下的jdk1.5.0_22目錄裡。

(3)       配置環境變量

執行$gedit ~/.bashrc打開.bashrc文件。

修改./bashrc文件,在文件末尾添加

#set java environment 

JAVA_HOME=“你的路徑”/jdk1.5.0_10
export JRE_HOME=“你的路徑”/jdk1.5.0_10/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存並關閉文件。

在終端執行source ~/.bashrc刷新該配置

 使用java –version檢查JDK是否配置正確。

 

3、問題三:

host c++: libhost <= build/libs/host/pseudolocalize.cpp/bin/bash: g++: 未找到命令

make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] 錯誤 127

 解決方法:$ sudo apt-get install build-essential

 

4、問題四:

external/clearsilver/cgi/cgi.c:22:18: 致命錯誤: zlib.h: 沒有那個文件或目錄編譯終端。

make: ***[out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] 錯誤 1

 解決方法:$ sudo apt-get install zlib1g-dev

 

5、問題五:

make: ***[out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/appt] 錯誤 1

 解決方法:

打開Android.mk文件

$gedit frameworks/base/tools/aapt/Android.mk

編輯下面一行:

ifeq ($(HOST_OS),linux)

#LOCAL_LDLIBS += -lrt       把這行註釋掉,改為下面一行。

LOCAL_LDLIBS += -lrt -lpthread

endif

 

6、問題六:

host c: adb<= system/core/adb/fdevent.c

host Executable:adb (out/host/linux-86/obj/EXECUTABLES/adb_intermediates/adb)/user/bin/ld: cannot find –lncurses

collect2: ld 返回 1

make: ***[out/host/linux-86/obj/EXECUTABLES/adb_intermediates/adb] 錯誤 1

 解決方法:$sudo apt-get install libncurses5-dev

 

7、問題七:

make: ***[out/target/product/sam9g45/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] 錯誤 25

 解決方法:$sudo apt-get install gpert

 

8、問題八:

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] 錯誤 1

 解決方法:

打開Android.mk

$ gedit frameworks/base/libs/utils/Android.mk

將下面這一行

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

改為

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

 

9、問題九:

make: ***[out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/skin/window.o] Error 1

 解決方法:$ sudo apt-get install libx11-dev

 

10、問題十:

make: *** [out/host/linux-x86/obj/EXECUTABLES/localize_intermediates/localize] 錯誤 1

 解決方法:

打開Android.mk:

$gedit ./framework/base/tools/localize/Android.mk文件(註意與問題五中的文件是不同文件)

編輯下面一行:

ifeq ($(HOST_OS),linux)

#LOCAL_LDLIBS += -lrt       把這行註釋掉,改為下面一行。

LOCAL_LDLIBS += -lrt –lpthread

 
11、問題十一:

make: ***[out/host/linux-x86/obj/EXECUTABLES/accRuntimeTest_intermediates/accRuntimeTest] 錯誤 1

 解決方法:

打開Android.mk:

$gedit system/core/libacc/tests/Android.mk(註意與問題五和問題十不是同一個文件)

將以下缺少的語句添加進去:

LOCAL_SHARED_LIBRARIES := \

     libacc

LOCAL_LDLIBS += -ldl

LOCAL_MODULE_TAGS := tests

在include $(BUILD_HOST_EXECUTABLE)下面添加以下缺少的語句:

LOCAL_SHARED_LIBRARIES := \

     libacc

LOCAL_LDLIBS += -ldl

LOCAL_MODULE_TAGS := tests

 

摘自 北京大學-Google Android實驗室

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。