前面 jdk安装完成 剩下的就是下载android源码 编译了
首先装一下这些,编译用到
sudo apt-get install flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl valgrind
里面libsdl1.2-dev libwxgtk2.8-dev是新的,不是别的书上的老的,老的源已经没有了,这些可能还不够,在编译的时候再看错误在解决吧
下载 android 源码,网上很多自己可以搜,要我的4.0.3也可以到资源里面下载。
下载放在 /Android 里面解压。
进入目录下执行
source./build/envsetup.shmake
然后就是等待错误解决错误,肯定有很多错误的。
首先推荐几个网站,,然后把我的错误给大家贴出来
其实还是自己遇到问题查的速度快,这样在里面找很慢的。
问题一
<built-in>:0:0:note:thisisthelocationofthepreviousdefinitionhostStaticLib:libOpenglCodecCommon(out/host/linux-x86/obj/STATIC_LIBRARIES/libOpenglCodecCommon_intermediates/libOpenglCodecCommon.a)hostSharedLib:libOpenglRender(out/host/linux-x86/obj/lib/libOpenglRender.so)/usr/bin/ld:cannotfind-lX11collect2:ldreturned1exitstatusmake:***[out/host/linux-x86/obj/lib/libOpenglRender.so]Error1
解决方法:$sudoln-s/usr/lib/i386-linux-gnu/libX11.so.6/usr/lib/i386-linux-gnu/libX11.so
问题二
[out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb]error
解决方案:
$sudo apt-get install libncurses5-dev
如果再编译不过:
$sudo apt-get install lib32ncurses5-dev
没有就先执行sudo apt-get update –fix-missing
问题三
out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt]
解决方法我先找的这个 没用貌似不过网上很多人解决了我的解决是没有把默认改为jdk1.6还是openjdk导致的。上一篇博客安装时候我就让大家修改了。sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/bin/jar /bin/jarsudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/bin/java /bin/javasudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/bin/javac /bin/javacsudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/bin/javah /bin/javahsudo ln -s/usr/lib/jvm/java-6-sun-1.6.0.06/bin/javadoc /bin/javadocsudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.06/bin/java /bin/java
问题四
[out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] 已杀死
是系统内存不够了,直接虚拟机设置里面改为2048 以前我的事1024
或者按照人家的解决 增加虚拟内存:sudo dd if=/dev/zero of=/swapfile bs=1024 count=512Mmkswap /swapfileswapon /swapfile
把swapfile写入/etc/fstab 文件,在后面加入/swapfile swap swap defaults 0 0
问题五
make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] 错误 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的库版本,不要完全按照网上的照抄。现在网上的都是“sudoln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so ”我的还是1.2ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so 。可能库最近升级了。
问题六
g++: g++: selected multilib ’32’ not installed
解决
sudo apt-get install g++-multilibsudo apt-get install libc6-dev ia32-libs lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utilssudo apt-get install g++-4.4-multilib
问题七
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
装完后在/usr/bin目录下
$ ls -l gcc*
lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
这时会发现gcc 链接到gcc-4.6, 需要将它改为链接到gcc-4.4 :
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
同理
ls -l g++*
lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
需要将g++链接改为g++-4.4:
/usr/bin$ sudo mv g++ g++.bak
/usr/bin$sudo ln -s g++-4.4 g++
再查看gcc和g++版本号:
gcc -v
g++ -v
问题八
喜欢就喜欢了,心被牵动,无须理由,爱上你是我的自由,