基于ubuntu12.04 编译Android 7.0源码

本文介绍在Ubuntu 12.04上部署Android 7.0开发环境的过程,包括安装配置OpenJDK 8、解决编译过程中遇到的各种依赖问题及错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司要上线android7.0,因此要部署环境,ubuntu 12.04 上面编译必须安装配置 openjdk-8-jdk、openjdk-8-jre .但是由于ubuntu 12.04 默认只带有openjdk-7、openjdk-6的包。
这是就需要我们单独安装openjdk-8 .
首先添加相应的source.list
1、sudo apt-add-repository ppa:openjdk-r/ppa
2、sudo apt-get update
sudo apt-get install openjdk-8-jdk

查看已安装的java
sudo update-alternatives –config java

配置完成后就开始编译源码
进入$HOME_DIR/

source build/envsetup.sh
lunch 选择相应combo
You're building on Linux

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_mips-eng
     4. aosp_mips64-eng
     5. aosp_x86-eng
     6. aosp_x86_64-eng
     7. full_fugu-userdebug
     8. aosp_fugu-userdebug
     9. mini_emulator_arm64-userdebug
     10. m_e_arm-userdebug
     11. m_e_mips64-eng
     12. m_e_mips-userdebug
     13. mini_emulator_x86_64-userdebug
     14. mini_emulator_x86-userdebug
     15. aosp_dragon-userdebug
     16. aosp_dragon-eng
     17. aosp_flounder-userdebug
     18. aosp_angler-userdebug
     19. aosp_bullhead-userdebug
     20. hikey-userdebug
     21. aosp_shamu-userdebug
     make -j8  进行编译
如果需要清理已编译的 make clean 即可

遇到的问题:
1)在进行sudo apt-get update 遇到了 如下的错误:

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EB9B1D8886F44E2A
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_precise-security_restricted_binary-i386_Packages  Hash Sum mismatch

W: Failed to fetch bzip2:/var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_precise-security_universe_binary-i386_Packages  Hash Sum mismatch

W: Failed to fetch bzip2:/var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_precise-security_multiverse_binary-i386_Packages  Hash Sum mismatch

W: Failed to fetch bzip2:/var/lib/apt/lists/partial/ppa.launchpad.net_openjdk-r_ppa_ubuntu_dists_precise_main_i18n_Translation-en  Hash Sum mismatch

W: Failed to fetch bzip2:/var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_precise-security_main_i18n_Translation-en  Hash Sum mismatch

W: Failed to fetch bzip2:/var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_precise-security_universe_i18n_Translation-en  Hash Sum mismatch

初步判断是因为被和谐的原因。后来试了很多办法还是不行。就在同样环境下的系统拷贝/vat/lib/apt/lists/ 目录 (Ps:因为update后的包存放在此目录下)
拷贝完成后安装openjdk-8-jdk 安装成功
2)/bin/bash: prebuilts/misc/linux-x86/bison/bison: No such file or directory
执行如下命令安装:
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
3)如下错误:
FAILED: /bin/bash -c "(true) && (prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.1.ALPHA.jar 2>&1 || (exit 0)) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.1.ALPHA.jar 4.1.ALPHA 2>&1 || exit 0) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack--1.1.PRE_ALPHA.jar -1.1.PRE_ALPHA || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack--1.2.PRE_ALPHA.jar -1.2.PRE_ALPHA || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack--1.3.PRE_ALPHA.jar -1.3.PRE_ALPHA || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-2.26.RELEASE.jar 2.26.RELEASE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.7.ALPHA.jar 3.7.ALPHA || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.8.ALPHA.jar 3.8.ALPHA || exit 47)"

安装
sudo apr-get install macports
4)JellyBean builds fail because JB uses xmllint during build:
xmllint frameworks/base/data/fonts/system_fonts.xml >/dev/null # Don't print the xml file to stdout.
/bin/bash: xmllint: command not found
make: *** [out/target/product/pandaboard/system/etc/system_fonts.xml] Error 127
make: *** Waiting for unfinished jobs....

安装apt-get install libxml2-utils


5.Android 编译报错(环境问题)QA:
Question:
"mkimage" command not found - U-Boot images will not be built
make[3]: *** [arch/arm/boot/uImage] Error 1
make[2]: *** [uImage] Error 2
make[1]: *** [sub-make] Error 2
Answer:
sudo apt-get install uboot-mkimage
Question:
g++: g++: selected multilib '32' not installed
selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] Error 1
make: *** Waiting for unfinished jobs....
make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] Error 1
Answer:
sudo apt-get install g++-4.4-multilib gcc-4.4-multilib


Question:
/usr/bin/ld: cannot find -lreadline
make: *** [out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3] Error 1
make: *** Waiting for unfinished jobs....
Answer:
sudo apt-get install libreadline6-dev lib32readline6-dev

Question:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
Answer:
  sudo apt-get install libc6-dev-i386
Question:
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error 1
Answer:
  sudo apt-get install g++-multilib
Question:
external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1
Answer:
sudo apt-get install zlib1g-dev
Question:
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
Answer:
sudo apt-get install lib32z1-dev

Question:
bison -d  -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127
Answer:
sudo apt-get install bison

Question:
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
Answer:
sudo apt-get install flex

Question:
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
Answer:
sudo apt-get install lib32ncurses5-dev

Question:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1
Answer:
sudo apt-get install libx11-dev

Question:
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'

Answer:
sudo apt-get install gperf

http://blog.youkuaiyun.com/jacobywu/article/details/24431915

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值