一.背景html
OS: ubuntu 16.04java
二.配置交叉編譯環境linux
2.1 安裝openjdkandroid
sudo apt-get install openjdk-7-jdk
2.2 使在同一臺機器上能夠編譯android 5.1及如下的版本git
sudo /var/lib/dpkg/info/openjdk-7-jdk:amd64.prerm removeubuntu
2.3 安裝tools\liboracle
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \ libesd0-dev libwxgtk3.0-dev squashfs-tools build-essential zip curl \ libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \ xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \ lib32readline-gplv2-dev gcc-multilib libswitch-perl \ libssl1.0.0 libssl-dev
2.4 源碼curl
git clone https://TeeFirefly@bitbucket.org/T-Firefly/firefly-rk3288.gitjvm
2.5 編譯內核flex
cd firefly-rk3288
cd kernel
make firefly-rk3288_defconfig make -j8 firefly-rk3288.img
2.6 編譯 Android
make -j8 (默認編譯出來的是userdebug版本)
2.6.1 此時出現如下錯誤:
build/core/main.mk:46: * You are using version 4.1 of make.
build/core/main.mk:47: * Android can only be built by versions 3.81 and 3.82.
2.6.2 解決方案:安裝低版本make
wget ftp://ftp.gnu.org/gnu/make/make-3.82.tar.bz2
tar xvf make-3.82.tar.bz2
cd make-3.82
./configure
make
sudo make install
cd /usr/bin
sudo cp make make_back
sudo cp /usr/local/bin/make ./
繼續make -j8
2.6.3出現如下錯誤:
You are attempting to build with an unsupported JDK.
You use OpenJDK but only Sun/Oracle JDK is supported.
2.6.4 解決方案:使用sun/oracle jdk
sudo apt-get update
sudo apt-get remove openjdk* (卸載openjdk)
sudo apt-get install oracle-java6-installer (沒法安裝)
那麼直接下載http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u21-oth-JPR
chmod u+x jdk-6u45-linux-x64.bin
sudo ./jdk-6u45-linux-x64.bin (執行完就出現一目錄,將其路徑設置到PATH中,如/home/jellojdk/jdk1.6.0_45/bin,那麼PATH=/home/jellojdk/jdk1.6.0_45/bin:$PATH)
update-alternatives --display java (當前sdk)
java - 手動模式
link best version is /usr/lib/jvm/java-9-oracle/bin/java
連接目前指向 /usr/lib/jvm/java-9-oracle/bin/java
link java is /usr/bin/java
/usr/lib/jvm/java-9-oracle/bin/java - 優先級 1091
update-alternatives --install /usr/bin/java java /home/jello/jdk/jdk1.6.0_45/bin/java 1092(設置優先級爲1092,比1091高)
從新打開一終端,輸入java -version 輸出以下信息:
jello@jello-Inspiron-N4050:~$ 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)
source build/envsetup.sh
lunch rk3288-eng
繼續make -j8
./mkimage.sh