Android4.2.2编译笔记:从Ubuntu环境开始
2017-09-10 19:58
519 查看
环境安装
: Ubuntu的apt-get不能直接下载安装mingw32,需要修改sources.list打开sources.list
输入命令:sudo gedit /etc/apt/sources.list
在sources.list末尾添加以下语句(红色),并保存退出。
deb http://us.archive.ubuntu.com/ubuntu trusty main universe
再次更新apt
输入命令:sudo apt-get update
: jdk6的安装包
下载 jdk
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR
现在的oracle要求下载前必须登陆
我的下载链接是http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin?AuthParam=1505035529_0f65ac80402d599c34529df11e4d531d
下载完成后,并不能双击运行这么简单(这便是Linux)
$ mkdir ~/bin $ mv jdk-6u45-linux-x64.bin ~/bin/ $ cd ~/bin/ $ chmod +x jdk-6u45-linux-x64.bin $ ./jdk-6u45-linux-x64.bin
编辑~/.bashrc 添加(运行$ gedit ~/.bashrc)
export PATH=~/bin:$PATH export JAVA_HOME=~/bin/jdk1.6.0_45/ export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 运行source ~/.bashrc 使之生效
: 可能遇到的bug
Android can only be built by versions 3.81 and 3.82
解决方法如下,下载3.8
ftp://ftp.gnu.org/gnu/make/make-3.81.tar.gz
make 3.8.1 的安装步骤:
tar -zxvf make-3.81.tar.gz (解压)
然后 cd 到 make3.8.1目录下
执行 ./configure (配置)
make (编译)
make install (安装)
在make3.8.1 目录下 会出现 make 这个编译好的 命令
./make -version (GNU Make 3.81 )
cp make /usr/bin/make (把刚刚编译好的make 把系统的覆盖)
make -version(GNU Make 3.81)
在运行时可能会碰到aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
需要运行之下命令
sudo apt-get install libswitch-perl sudo cpan -f Switch
gcc 和g++版本过高
1、进入/usr/bin ls -l gcc* 查看gcc当前连接版本 rm gcc 删除gcc连接 同理 ls -l g++* rm g++ 2、降级到4.4.7版本 sudo apt-get install gcc-4.4 sudo apt-get install g++-4.4 sudo apt-get install g++-4.4-multilib //64位 sudo apt-get install gcc-4.4-multilib ln -s /usr/bin/gcc-4.4 /usr/bin/gcc ln -s /usr/bin/g++4.4 /usr/bin/g++
make: [out/host/linuxx86/obj/EXECUTABLES/emulator_intermediates/android/skin/window.o] Error 1
sudo apt-get install libx11-dev
: 官网要求的软件
$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
把源码导入虚拟机
创建共享文件夹以实现Window到Ubuntu文件的拷贝在VirtualBox的共享文件夹中创建固定分配
如(WinShare 映射路径为 D:\WinShare)
设置好共享名后,进入Ubunt
a124
u系统,打开终端,先执行命令,在挂载点目录添加“winShare”目录,接着执行”sudo mount -t vboxsf WinShare /home/jian/winShare/”,就能完成共享文件夹的设置。
设置自动挂载,重启虚拟机系统共享仍在。
可以在/etc/fstab中添加一项
WinShare /home/jian/winShare/ vboxsf rw,gid=110,uid=1100,auto 0 0
卸载挂载点命令:umount -f /home/jian/winShare/
编译项目
进入源码根目录编译初始化:
在终端中执行:
source build/envsetup.sh
执行后输出:
including device/asus/grouper/vendorsetup.sh
… …
including sdk/bash_completion/adb.bash
选择编译目标:
lunch full-eng
执行后会又以下信息提示:
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.2
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-2.6.32-45-generic-x86_64-with-Ubuntu-10.04-lucid
HOST_BUILD_TYPE=release
BUILD_ID=JOP40C
OUT_DIR=out :
编译代码:
在终端中执行:make -j4
-j4:表示用四个线程来编译:
我用虚拟机,配置为4g,交换空间为2g,编译了大约6个小时。
运行模拟器
在终端中执行:emulator在 ~/.bashrc
添加环境变量:
export ANDROID_PRODUCT_OUT=~/code/android-4.2/out/target/product/generic
export ANDROID_SWT=~/code/android-4.2/out/host/linux-x86/framework/
备注:
重启系统后:
执行emulator,出现如下错误:
directory could not be found. If you are an Android SDK user, please use '@<name>' or '-avd <name>' to start a given virtual device (see -help-avd for details). Otherwise, follow the instructions in -help-disk-images to start the emulator
解决:
source build/envsetup.sh
lunch sdk-eng
然后再执行
emulator
可以启动模拟器
主机配置:Window/4G
虚拟机配置
F盘剩余空间294G ->
起始时间是 19:22 ->
相关文章推荐
- Ubuntu14.04 安装Android 编译环境之 环境变量设置1---学习笔记
- ubuntu/centos环境下玩android系统(一): 从编译android开始!
- android4.2.2 飞思卡尔 编译错误笔记 ubuntu12.04
- ubuntu/centos环境下玩android系统(一): 从编译android开始!
- ubuntu 编译android2.2源码配置环境及jdk5(2)
- Ubuntu 环境编译Kernel和Android
- ubuntu 编译android2.2源码配置环境及jdk5(6)
- 在 Ubuntu 8.10环境下编译 Android 2.2
- 高版本的Ubuntu环境下android编译注意的问题
- 32bit Ubuntu 10.10环境下Android Froyo编译问题解决
- android官方文档:ubuntu10.04下编译android源码之初始化编译环境 Initializing a Build Environment
- ubuntu 编译android2.2源码配置环境及jdk5(4)
- Android开发入门之二--Android编译环境搭建(Vmawre+Ubuntu10.04+SecureCRT)
- Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo) 源代码
- ubuntu 编译android2.2源码配置环境及jdk5(7)
- 在 Ubuntu 8.10环境下编译 Android 2.2
- 如何在ubuntu10.04环境下编译android
- Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo) 源代码 1/2
- 在 Ubuntu 8.10环境下编译 Android 2.2
- Android 开发环境搭建---Android 编译需要的sun-java5-jdk在ubuntu10.04以上版本的安装问题