一、tiny4412开发板Android环境搭建之编译安卓源码

1、宿主机:ubuntu14.04 x64

2、目标机:tiny4412开发板

 

搭建个Android环境需要bootkernleAndroid三大部分。

这里分别对应:ubootlinux-3.5android-4.2.2_r1,这里主要讲解android-4.2.2_r1编译。

一、编译android-4.2.2_r1环境准备

ubuntu14.04中需要安装下面的库:

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-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev

并且手动安装jdk(对于4.x版本的android使用的jdk1.6版本,如果是5.x使用1.7jdk的版本)

手动安装jdk过程记录:

① 下载jdk,使用下面的链接地址下载

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR

把下载的jdk-6u45-linux-x64.bin拷贝到/usr/local/java目录。

② 安装jdk

root@andorid-virtual-machine:/usr/local/java# ./jdk-6u45-linux-x64.bin

③ 配置jdk环境变量,修改/etc/profile

JAVA_HOME=/usr/local/java/jdk1.6.0_45
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

④ 重启ubuntu就可以使用下面命令来查看是否安装和设置环境变量成功

root@andorid-virtual-machine:/usr/local/java# java -version   //出现下面的信息表示成功

java version "1.6.0_45"

Java(TM) SE Runtime Environment (build 1.6.0_45-b06)

Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

root@andorid-virtual-machine:/usr/local/java# 

到了这里编译安卓源码的环境就搭建成功了。接下开始编译安卓

二、编译andorid4.2.2版本

1、进入安卓源码

# cd /work/tiny4412/Andorid/android-4.2.2_r1

2、设置环境变量

root@andorid-virtual-machine:/work/tiny4412/Andorid/android-4.2.2_r1# source setenv

3、选择编译平台

root@andorid-virtual-machine:/work/tiny4412/Andorid/android-4.2.2_r1# lunch

选择:

full_tiny4412-eng

4、设置cache加快编译速度

root@andorid-virtual-machine:/work/tiny4412/Andorid/android-4.2.2_r1# prebuilts/misc/linux-x86/ccache/ccache -M 50G

5、编译

root@andorid-virtual-machine:/work/tiny4412/Andorid/android-4.2.2_r1# make

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=4.2.2

TARGET_PRODUCT=full_tiny4412

TARGET_BUILD_VARIANT=eng

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

TARGET_ARCH_VARIANT=armv7-a-neon

HOST_ARCH=x86

HOST_OS=linux

HOST_OS_EXTRA=Linux-3.19.0-25-generic-x86_64-with-Ubuntu-14.04-trusty

HOST_BUILD_TYPE=release

BUILD_ID=JDQ39

OUT_DIR=out

============================================

find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': 没有那个文件或目录

find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': 没有那个文件或目录

find: `../../vendor/unbundled_google/libs/gcm/gcm-client/src': 没有那个文件或目录

find: `../../vendor/unbundled_google/libs/gcm/gcm-server/src': 没有那个文件或目录

 

出现上面没找到文件或者目录的警告。

 

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Scarabaeus.ogg:system/media/audio/ringtones/Scarabaeus.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Solarium.ogg:system/media/audio/ringtones/Solarium.ogg ignored.

build/core/Makefile:32: 警告:覆盖关于目标“out/target/product/tiny4412/system/etc/permissions/android.software.live_wallpaper.xml”的命令

build/core/base_rules.mk:502: 警告:忽略关于目标“out/target/product/tiny4412/system/etc/permissions/android.software.live_wallpaper.xml”的旧命令

build/core/Makefile:32: 警告:覆盖关于目标“out/target/product/tiny4412/root/init.rc”的命令

system/core/rootdir/Android.mk:46: 警告:忽略关于目标“out/target/product/tiny4412/root/init.rc”的旧命令

BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.

make: *** [out/target/product/tiny4412/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/html/DocTypeStrings.cpp] 错误 2

make: *** 正在等待未完成的任务....

Can't locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.

BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.

make: *** [out/target/product/tiny4412/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/platform/ColorData.cpp] 错误 2

 

解决方法:

apt-get install libswitch-perl 

 

重新编译。

 

Install: out/host/linux-x86/framework/dvlib-tests.jar

注意:某些输入文件使用或覆盖了已过时的 API

注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。

注意:某些输入文件使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

Install: out/host/linux-x86/framework/bouncycastle-bcpkix-host.jar

host Java: cts-java-scanner-doclet (out/host/common/obj/JAVA_LIBRARIES/cts-java-scanner-doclet_intermediates/classes)

/bin/bash: jar: 未找到命令

/bin/bash: jar: 未找到命令

make: *** [out/host/common/obj/JAVA_LIBRARIES/common_intermediates/javalib.jar] 错误 127

make: *** 正在等待未完成的任务....

make: *** [out/host/common/obj/JAVA_LIBRARIES/hosttestlib_intermediates/javalib.jar] 错误 127

/bin/bash: jar: 未找到命令

make: *** [out/host/common/obj/JAVA_LIBRARIES/cts-java-scanner-doclet_intermediates/javalib.jar] 错误 127

/bin/bash: jar: 未找到命令

make: *** [out/host/common/obj/JAVA_LIBRARIES/ddmuilib_intermediates/javalib.jar] 错误 127

注意:某些输入文件使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

/bin/bash: jar: 未找到命令

 

 

 

解决:配置jdk的路径

 

最终经过漫长的等待终于编译成功了!

你可能感兴趣的:(Android)