ubuntu 12.10 编译android4.0.1 源码报错

 

最近要修改android 源代码,所以下载了android 4.0.1源代码,编译源代码真是累人的事情,各种错误。

下面记录出现的错误,以及解决方法。


提示信息

host SharedLib: lib64EGL_translator (out/host/linux-x86/obj/lib/lib64EGL_translator.so)
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/lib64EGL_translator.so] Error 1
make: *** Waiting for unfinished jobs....

解决方法 :

sudo apt-get install libglu1-mesa-dev

*****************************************************************************************

host StaticLib: libGLcommon (out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon
_intermediates/libGLcommon.a)
host SharedLib: libGLES_CM_translator (out/host/linux-x86/obj/lib/libGLES_CM_tra
nslator.so)
/usr/bin/ld: cannot find -lGL
collect2: ld returned exit status
make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] Error 1


解决方法: sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so 



在网上搜到上面的解决方法,可是按照上述方法做了,问题依旧。经过多方实验,才发现问题所在。通过apt-get install的库不是libGL.so.1.2了。而是libGL.so.1.2.0.

所以大家在创建链接的时候最好去/usr/lib/i386-linux-gnu/mesa/这个目录下看看libGL的库版本,不要完全按照网上的照抄。现在网上的都是“sudo 

ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so ”而我的是sudo 

ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0  /usr/lib/libGL.so 。可能库最近升级了。

***********************************************************************************************

make: *** [out/target/common/docs/doc-comment-check-timestamp] 错误 45

解决方法:需要做个链接如下:

 sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/jar  /bin/jar
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/java  /bin/java
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/javac  /bin/javac
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/javah  /bin/javah
sudo ln -s /home/chenchangke/DevEnv/JDK/jdk1.6.0_38/bin/javadoc  /bin/javadoc 

这个解决方法和网上大多数的不一样。网上很多针对这个问题的,都是在android2.3源代码遇到的,需要修改4个文件,而这4个文件,在android4.0源代码中,根本没有。


***************************************************************************************************

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

解决方法:$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so


****************************************************************************************************

out/target/common/obj/APPS/android.core.tests.libcore.package.com.no-core-tests-res_intermediates  已杀掉


这个错误网上说是SWAP空间不足引起的,可以通过增加SWAP空间解决。我是通过修改编译参数解决的。

我原来是用的“make -j8”我把他降为“make -j2”,就可以解决了。因为报这个错误的时候,已经是编译的后期了,用2个线程编译也差不多了。


****************************************************************************************************

编译完成后启动模拟器:$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img

报错提示:qemu: could not load initrd 'ramdisk.img'

  这个是权限的问题,必须进入到out/target/product/generic,执行命令:chmod 777 -R *。

尝试过在外面把真个源代码库添加权限,没有成功,必须进入到这个目录修改权限,不知道什么原因。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值