android-2.1_r2编译出错记录

这是我编译android源代码的时候遇到的问题,特来分享一下,希望对大家有帮助,我的系统是ubuntu11.10,下载地址是:http://down.tech.sina.com.cn/page/28382.html,android版本是android-2.1_r2,下载地址是:http://d.zhu.im/Android/,这个网址有时候打开会慢,要耐心等待,进去后用迅雷下载android版本就行了。

出错及解决如下:

1. /bin/bash: bison: command not found

解决a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install bison

2.ubuntu下怎样安装vim编辑器

默认就有vim的,你开个终端输入vim回车。

如果没有,终端输入 sudo apt-get install vim

3.Your version is: java version "1.6.0_26".

The correct version is: 1.5.

解决办法:先卸载java6,再安装java5.

卸载java6

卸载sun-java6-jdk
$ sudo apt-get remove sun-java6-jdk
$ sudo apt-get remove sun-java6-bin 

安装java5

sudo gedit /etc/apt/sources.list

加入如下源。
deb http://cz.archive.Ubuntu.com/ubuntu hardy-updates main multiverse

并执行:sudo apt-get update 更新源后再执行上述指命令既可成功下载。

再执行sudo apt-get install sun-java5-jdk

Java -version查看版本

4./bin/bash: g++: 未找到命令

 /bin/bash: g++: command not found

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

解决a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install build-essential

5.external/clearsilver/cgi/cgi.c:22:18: 致命错误: zlib.h:没有那个文件或目录

编译中断。

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

解决a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install zlib1g-dev 

6.frameworks/base/libs/utils/RefBase.cpp:483:67错误将‘const android::RefBase::weakref_impl’作为‘void android::RefBase::weakref_impl::trackMe(bool, bool)’的‘this’实参时丢弃了类型限定 [-fpermissive]

解决方法$ gedit frameworks/base/libs/utils/Android.mk

修改以下语句

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

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

7.g++: 错误: fpermissive:没有那个文件或目录

解决:因为fpermissive 前边的-是带输入法的,改为不带输入法的 短线就可以了

8./home/hmepas/android/src/system/core/libcutils/threads.c:44: undefined

reference to `pthread_setspecific'

解决方法修改./framework/base/tools/aapt/Android.mk文件
LOCAL_LDLIBS := -lz
ifeq ($(HOST_OS),linux)
-LOCAL_LDLIBS += -lrt
+LOCAL_LDLIBS += -lrt -lpthread
endif
ifeq ($(HOST_OS),windows) 

9./bin/bash: flex: 未找到命令

 解决apt-get install flex 

10./usr/bin/ld: cannot find -lncurses

 collect2: ld returned 1 exit status

 make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

 解决a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install libncurses-dev

11.make: *** [out/host/linux-x86/obj/EXECUTABLES/localize_intermediates/localize] 错误 1

android::RefBase::weakref_implasthisargumentofvoid

android::RefBase::weakref_impl::trackMe(bool,bool)discardsqualifiers[-fpermissive]

make:***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o]错误1

解决方法:打开Android.mk

$geditframeworks/base/libs/utils/Android.mk将下面这一行

LOCAL_CFLAGS+=-DLIBUTILS_NATIVE=1$(TOOL_CFLAGS)改为

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

12、make:

***[out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/skin/window.o]Error1

解决方法$sudoapt-getinstalllibx11-dev

13.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+=-lrtlpthread

14)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]

       Error 25

  make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'

解决a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install gperf

15. 错误提示:

host C++: acc <= system/core/libacc/tests/main.cpp

host C++: libacc <= system/core/libacc/acc.cpp

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

host Executable: acc (out/host/linux-x86/obj/EXECUTABLES/acc_intermediates/acc)

/usr/bin/ld: out/host/linux-x86/obj/EXECUTABLES/acc_intermediates/main.o: in function symbolLookup(void*, char const*):system/core/libacc/tests/main.cpp:41: error: undefined reference to 'dlsym'

collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/EXECUTABLES/acc_intermediates/acc] 错误 1

解决方法:修改./system/core/libacc/tests/Android.mk文件

LOCAL_SHARED_LIBRARIES :=

libacc

+LOCAL_LDLIBS := -ldl

#LOCAL_MODULE_TAGS := tests

LOCAL_SHARED_LIBRARIES :=

libacc

+LOCAL_LDLIBS := -ldl

LOCAL_CFLAGS := -O0 -g

LOCAL_SHARED_LIBRARIES :=

libacc

+LOCAL_LDLIBS := -ldl

LOCAL_MODULE_TAGS := tests

LOCAL_SHARED_LIBRARIES :=

libacc

+LOCAL_LDLIBS := -ldl

LOCAL_CFLAGS := -O0 -g
但是我按照上面的改了以后,编译还是出错,后来把+LOCAL_LDLIBS := -ldl换为

LOCAL_LDLIBS := -ldl就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值