Android4.2.2编译笔记:从Ubuntu环境开始
来源:互联网 发布:mac帧ip类型数据长度 编辑:程序博客网 时间:2024/06/05 20:24
环境安装
: 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)设置好共享名后,进入Ubuntu系统,打开终端,先执行命令,在挂载点目录添加“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 ->
- Android4.2.2编译笔记:从Ubuntu环境开始
- Ubuntu 搭建Android4.0编译环境
- ubuntu/centos环境下玩android系统(一): 从编译android开始!
- ubuntu/centos环境下玩android系统(一): 从编译android开始!
- Ubuntu 12.04 中android4.0 源码编译环境搭建
- Android4.2编译环境搭建(一)Ubuntu安装
- Ubuntu 12.04.5 LTS下配置android4.4编译环境
- Ubuntu 14.04(64位)编译android4.2.2
- ubuntu编译android4.0
- 【ubuntu 学习笔记】从这里开始,从今天开始。
- 虚拟机VMWARE和Ubuntu下搭建了一个android2.3/android4.2/android4.1/android4.0编译环境的操作过程
- ubuntu编译android4.0.3源码
- Ubuntu编译android4-4源码
- Android4.0编译环境搭建
- [从0开始学Android]-1.搭建编译环境
- 菜鸟开发人员ubuntu环境从0开始,装机指南
- 重装Ubuntu配置编程环境LAMP,J2EE从0开始
- Ubuntu 16.04环境SudaMod2.0编译笔记
- 花式读取Android CPU使用率
- 2017 ACM/ICPC Asia Regional Shenyang Online 1004 array array array
- jzoj P2190 dis
- ImageLoader
- opencv中标定函数calibrateCamera
- Android4.2.2编译笔记:从Ubuntu环境开始
- 铁轨,紫书P140UVa514
- TP框架的使用(ThinkPHP3.2.2)
- shell脚本连接、读写、操作mysql数据库实例
- XRecyclerView 上拉刷新、下拉加载
- golang -strconv包常用函数笔记
- 我的思维导图
- hiho一下 第167周
- LeetCode 1. Two Sum (Easy)