ubuntu 编译 Android 出现的若干错误及解决方法

来源:互联网 发布:印度出口数据 编辑:程序博客网 时间:2024/05/17 06:28

转自《http://blog.csdn.net/gumanren/article/details/6043355》


刚下好 android 源码后马上编译会发现有各种各样的错误,原因是有些依赖包没有装。

为了避免出现以下我遇到的错误,请先安装 jdk1.5,必须是 jdk1.5,不然肯定编译不过的。

然后,在检查以下有没有安装以下依赖包:

sudo apt-get install bison libc6-dev-amd64 g++-multilib zlib1g-dev lib64z1-dev flex libncurses5-dev libx11-dev gperf

下面是我遇到的错误及解决方法:

/bin/bash: bison:找不到命令 
Checking build tools versions... 
************************************************************ 
You are attempting to build with the incorrect version 
of java.

Your version is: /bin/bash: java:找不到命令. 
The correct version is: 1.6.

Please follow the machine setup instructions at

http://source.android.com/source/download.html

************************************************************ 
build/core/main.mk:114: *** stop。 停止。

解决方法: 
sudo apt-get install bison

Install: out/host/linux-x86/framework/droiddoc.jar 
target Generated: libclearsilver-jni <= out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/javalib.jar 
host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.c 
In file included from /usr/include/features.h:378, 
from /usr/include/string.h:26, 
from external/clearsilver/java-jni/j_neo_util.c:1: 
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 没有那个文件或目录 
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libclearsilver-jni_intermediates/j_neo_util.o] 错误 1

解决方法: 
sudo apt-get install libc6-dev-amd64

http://www.poemcode.net/2010/07/android-stubs-64/

host SharedLib: libneo_util (out/host/linux-x86/obj/lib/libneo_util.so) 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
collect2: ld returned 1 exit status 
make: *** [out/host/linux-x86/obj/lib/libneo_util.so] 错误 1

解决方法: 
sudo apt-get install g++-multilib

external/clearsilver/cgi/cgi.c:22:18: error: zlib.h: 没有那个文件或目录 
external/clearsilver/cgi/cgi.c: In function ‘cgi_compress’: 
external/clearsilver/cgi/cgi.c:885: error: ‘z_stream’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:885: error: (Each undeclared identifier is reported only once 
external/clearsilver/cgi/cgi.c:885: error: for each function it appears in.) 
external/clearsilver/cgi/cgi.c:885: error: expected ‘;’ before ‘stream’ 
external/clearsilver/cgi/cgi.c:888: error: ‘stream’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:888: error: ‘Bytef’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:888: error: expected expression before ‘)’ token 
external/clearsilver/cgi/cgi.c:889: error: ‘uInt’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:889: error: expected ‘;’ before ‘str’ 
external/clearsilver/cgi/cgi.c:890: error: expected expression before ‘)’ token 
external/clearsilver/cgi/cgi.c:892: error: ‘uLong’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:892: error: expected ‘)’ before ‘stream’ 
external/clearsilver/cgi/cgi.c:895: error: ‘alloc_func’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:895: error: expected ‘;’ before numeric constant 
external/clearsilver/cgi/cgi.c:896: error: ‘free_func’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:896: error: expected ‘;’ before numeric constant 
external/clearsilver/cgi/cgi.c:897: error: ‘voidpf’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:897: error: expected ‘;’ before numeric constant 
external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFAULT_COMPRESSION’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFLATED’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:900: error: ‘MAX_WBITS’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFAULT_STRATEGY’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:901: error: ‘Z_OK’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:904: error: ‘Z_FINISH’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:905: error: ‘Z_STREAM_END’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c: In function ‘cgi_output’: 
external/clearsilver/cgi/cgi.c:1200: error: ‘Z_NULL’ undeclared (first use in this function) 
external/clearsilver/cgi/cgi.c:1201: error: expected ‘)’ before ‘Bytef’ 
external/clearsilver/cgi/cgi.c:1201: warning: cast from pointer to integer of different size 
external/clearsilver/cgi/cgi.c:1218: error: ‘Z_DEFLATED’ undeclared (first use in this function) 
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] 错误 1

解决方法: 
sudo apt-get install zlib1g-dev

host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so) 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.so when searching for -lz 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.a when searching for -lz 
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz 
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz 
/usr/bin/ld: cannot find -lz 
collect2: ld returned 1 exit status 
make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] 错误 1

解决方法: 
sudo apt-get install lib64z1-dev

out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp: In function ‘int yyparse()’: 
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1827: warning: deprecated conversion from string constant to ‘char*’ 
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1970: warning: deprecated conversion from string constant to ‘char*’ 
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l 
/bin/bash: flex:找不到命令 
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] 错误 127

解决方法: 
sudo apt-get install flex

Docs droiddoc: out/target/common/docs/api-stubs 
Could not load 'clearsilver-jni' 
java.library.path = out/host/linux-x86/lib 
make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45

解决方法: 
安装 jdk1.5

host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb) 
/usr/bin/ld: cannot find -lncurses 
collect2: ld returned 1 exit status 
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 错误 1

解决方法: 
sudo apt-get install libncurses5-dev

host C: emulator <= external/qemu/android/main.c 
In file included from external/qemu/android/main.c:30: 
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55:22: error: X11/Xlib.h: 没有那个文件或目录 
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:56:23: error: X11/Xatom.h: 没有那个文件或目录 
In file included from external/qemu/android/main.c:30: 
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:73: error: expected specifier-qualifier-list before ‘XEvent’ 
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:86: error: expected specifier-qualifier-list before ‘Display’ 
external/qemu/android/main.c: In function ‘main’: 
external/qemu/android/main.c:1281: warning: implicit declaration of function ‘audio_check_backend_name’ 
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main.o] 错误 1

解决方法: 
sudo apt-get install libx11-dev

Generating CSSPropertyNames.h <= CSSPropertyNames.in 
sh: gperf: not found 
calling gperf failed: 32512 at ./makeprop.pl line 96. 
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] 错误 25 
make: *** 正在删除文件“out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h”


原创粉丝点击