編譯環(huán)境這里給大家提供了編譯好的開(kāi)發(fā)環(huán)境,我們可以在搭建好的編譯環(huán)境中順利編譯成功,所以這里建議大家使用搭建好的環(huán)境。“搭建好編譯環(huán)境的Ubuntu16.04”在網(wǎng)盤(pán)資料“i.MX8MM開(kāi)發(fā)板\02-i.MX8MM開(kāi)發(fā)板網(wǎng)盤(pán)資料匯總(不含光盤(pán)內(nèi)容)\20210601\02_i.MX8MM開(kāi)發(fā)板搭建好編譯環(huán)境的Ubuntu16.04虛擬機(jī)鏡像”目錄下,使用我們提供的Ubuntu環(huán)境,可以直接參考第九章 Android固件編譯進(jìn)行編譯Android9。 這個(gè)也給大家介紹了搭建好的環(huán)境是怎么從原生的環(huán)境中一步一步來(lái)的,如果大家要在自己的開(kāi)發(fā)環(huán)境上搭建,也可以參考這個(gè)章節(jié)。但是由于大家自己用的Ubuntu的版本和我們不一樣,可能中間會(huì)遇到形形色色的問(wèn)題。這就需要一個(gè)很強(qiáng)的開(kāi)發(fā)調(diào)試能力了,所以這里建議大家還是使用我們提供的搭建好的編譯環(huán)境。 8.1 增加交換分區(qū)1 )編譯 Android 對(duì)機(jī)器的配置要求較高,注意:推薦電腦配置處理器:Core(TM) i7 內(nèi)存:16G ,虛擬機(jī)硬盤(pán) 300G 以上,內(nèi)存 8G 以上; 2)我們要確認(rèn)當(dāng)前Ubuntu系統(tǒng)的交換分區(qū)的大小,如果交換分區(qū)不足會(huì)造成Android源碼編譯失敗,然后我們安裝一個(gè)軟件htop,來(lái)查看內(nèi)存的使用情況,安裝命令如下所示: sudo apt-get install htop 3)然后輸入“htop”運(yùn)行軟件,運(yùn)行如下所示,輸入“q”停止運(yùn)行htop軟件。 ![]() 4)從上圖我們可以看到物理內(nèi)存是11G,交換內(nèi)存為0,在這里給大家做個(gè)示范增加5G交換分區(qū)。接下來(lái)增加交換內(nèi)存。 5)通過(guò)以下命令創(chuàng)建一個(gè)用于 swap 的文件 sudo fallocate -l 5G /swapfile 執(zhí)行以下命令為 swapfile 文件設(shè)置正確的權(quán)限: sudo chmod 600 /swapfile 使用 mkswap 實(shí)用程序在文件上設(shè)置 Linux SWAP 區(qū)域: sudo mkswap /swapfile 使用以下命令激活 swap 文件: sudo swapon /swapfile ![]() 6)要讓創(chuàng)建好的 swap 分區(qū)永久生效,可以將 swapfile 路徑內(nèi)容寫(xiě)入到 /etc/fstab 文件當(dāng)中: sudo vim /etc/fstab 在/etc/fstab 文件最后添加如下內(nèi)容:/swapfile swap swap defaults 0 0 ![]() 7)使用 swapon 或 free 命令驗(yàn)證 SWAP 是否處于活動(dòng)狀態(tài),如下所示: sudo swapon --show sudo free -h ![]() 8.2 安裝JDK 1)Android9 系統(tǒng)編譯依賴于 JAVA 8。編譯之前需安裝 OpenJDK。安裝命令如下: add-apt-repository ppa ![]() apt-get update apt-get install openjdk-8-jdk 執(zhí)行結(jié)果,如下圖所示: ![]() ![]() ![]() 2)如果您之前安裝過(guò)其他版本的JDK,需要進(jìn)行版本切換。如果沒(méi)有安裝過(guò),可以跳過(guò)此步驟,查看目前已經(jīng)安裝在系統(tǒng)里的Java版本,使用以下命令: update-java-alternatives -l ![]() 3)查看相應(yīng)的jdk(java javac等)是否在 ubuntu的jdk菜單里,查看切換JDK的命令,如下所示: update-alternatives --config java ![]() 輸入 java8 對(duì)應(yīng)的選擇項(xiàng),按回車進(jìn)行確認(rèn)。 4 輸入以下命令查看java的版本 java -version ![]() |