android 2.3.4 编译中出错和解决办法

需要安装的一些库,有如下一些:
sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown
libxml2-utils xsltproc
 
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
(上述是参考:《TE&OK6410开发板Android2.3.4用户手册11.pdf》关于编译android源码的部分内容)
1.

You are attempting to build on a 32-bit system.

Only 64-bit build environments are supported beyond froyo/2.2

./external/clearsilver/cgi/Android.mk

./external/clearsilver/java-jni/Android.mk

./external/clearsilver/util/Android.mk

./external/clearsilver/cs/Android.mk

四个文件中的

LOCAL_CFLAGS += -m64

LOCAL_LDFLAGS += -m64

注释掉,或者将“64”换成“32”

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

然后,将./build/core/main.mk 中的

ifneq (64,$(findstring 64,$(build_arch)))

改为:

ifneq (i686,$(findstring i686,$(build_arch)))

 
2.
shgperfnot found:
sudo apt-get install gperf
 
3.
MediaScanner.cpp:84: error: invalid conversion from ‘const char*
gcc版本太高,安装gcc4.3
 
 
4.
HTTPStream.cpp:136: error: ‘USHRT_MAX’ was not declared in this scope...
解决方案:

不要编译simulator版本,编译generic的版本。
上述不编译generic版本的话,不知道模拟器是否识别,最终编译成功(最后验证的时候,发现是模拟器运行,可以直接成功的,多虑了)
 
原文地址:https://www.cnblogs.com/fishoneseaatblog/p/4058359.html