zoukankan      html  css  js  c++  java
  • ubuntu12.04编译android源码

    1.编译前的准备工作

      请确认以下包的版本是否OK:

      1.1 gcc4.4,而不是gcc4.6,如果是4.6,需要安装gcc4.4,命令如下:

        sudo apt-get install gcc-4.4

        sudo apt-get install g++-4.4

        cd /usr/bin

        ls -l gcc*

        sudo mv gcc gcc.bak

        sudo ln -s gcc-4.4 gcc

        ls -l g++*

        sudo mv g++ g++.bak

        sudo ln -s g++-4.4 g++

        gcc -v

        g++ -v

      1.2 python2.5-2.7,ubuntu12.04版本,默认的python版本是2.7,所以,这个没什么问题

      1.3 java版本微1.6.0,而不是openJDK,前面我已经删除了openJDK的安装包,所以这里应该没有才对。

    2. 编译源码

      按照官方的提示,依次执行如下命令:

      source build/envsetup.sh

      lunch full-eng

      make -j4

      建议:最后一条命令使用make showcommands,这样可以显示编译命令,使得编译的时候,屏幕没有输出的时候,不会感觉无聊。

    3.编译错误处理

      3.1 错误:You are attempting to build with the incorrect version of java.

        解决方法:sudo update-alternatives --config java,同时最好确认下javac和jar命令。

      3.2 错误:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1
                make: *** 正在等待未完成的任务....

        解决方法:修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:

        将以下语句

          HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

        修改为

          HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

      3.3 错误:make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] 错误 1

        解决方法:

        gedit external/mesa3d/src/glsl/linker.cpp      

        在头文件段中,添加#include <stddef.h>

      3.4 错误:make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o]

        解决方法:确认你使用的gcc和g++的4.4版本,而不是更高的版本。

      3.5 错误:make: *** [out/target/common/obj/APPS/CtsVerifier_intermediates/classes-full-debug.jar]

        解决方法:sudo update-alternatives --config javac,选择jdk1.6.0,而不是openjdk。

      3.6 错误:make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.com.no-core-tests-res_intermediates    /  noproguard.classes-with-local.dex] Killed

        解决方法:此问题是因为编译android4.0需要4GB的RAM或SWAP空间,而ubuntu默认的1GB的,所以,增加swap空间即可,执行命令如下:

        sudo dd if=/dev/zero of=/boot/swapfile bs=1024 count=4194304

        sudo mkswap -v1 /boot/swapfile

        sudo swapon /boot/swapfile

        free

        sudo vi /etc/fstab

        /boot/swapfile swap swap defaults 1 1

    4. 编译成功

      4.1 编译成功之后,会在out/target/product/generic下面看到system.img,ramdisk.img,userdata.img

      4.2 但是我编译成功之后,在终端运行emulator命令,却提示:

        No command 'emulator' found, did you mean:

        Command 'qemulator' from package 'qemulator' (universe)

        emulator: command not found

        解决方法:

        重新运行以下命令:

        source build/envsetup.sh

        lunch full-eng

      4.3 emulator运行截图

  • 相关阅读:
    21.栈的压入、弹出序列(python)
    19.顺时针打印矩阵(python)
    18.二叉树的镜像(python)
    [leetcode] 82. 删除排序链表中的重复元素 II
    [leetcode] 83. 删除排序链表中的重复元素
    [leetcode] 81. 搜索旋转排序数组 II
    [leetcode] 80. 删除排序数组中的重复项 II
    [leetcode] 208. 实现 Trie (前缀树)(Java)
    [leetcode] 212. 单词搜索 II(Java)
    [leetcode] 79. 单词搜索
  • 原文地址:https://www.cnblogs.com/xingfuzzhd/p/2672000.html
Copyright © 2011-2022 走看看