首頁 > 軟體

使用Ubuntu 17.04編譯Android 6.0原始碼

2020-06-16 17:14:24

在安裝了最新的Ubuntu 17.04後編譯Android 6.0原始碼的過程中,遇到了很多問題:

1、openjdk無法支援jdk8,只能用回jdk7

2、還有很多未曾遇到的編譯問題

還陸陸續續遇到了各種各樣的編譯失敗的資訊,最後,參考Ubuntu 16.04編譯Android的方法順利解決。

Android 6.0原始碼下載地址: http://www.linuxidc.com/Linux/2016-01/127285.htm

比如下面這個錯誤:

是參考

Ubuntu 16.04 下載和編譯Android 6.0 原始碼  http://www.linuxidc.com/Linux/2017-05/144072.htm

Ubuntu 16.04下編譯Android 6.0原始碼  http://www.linuxidc.com/Linux/2017-05/144071.htm

直接將:

art/build/Android.common_build.mk檔案的:

ifneq ($(WITHOUT_HOST_CLANG),true)改為ifeq ($(WITHOUT_HOST_CLANG),false)


然後發現make -j32後還是一樣出現了如圖的錯誤:

於是又爬了很久的坑,找到了最終的解決方案:

參考了網上的文章,與clang編譯器有關:

具體參考修改方案:

http://www.linuxidc.com/Linux/2017-05/144073.htm

解決方法:
clang編輯器的問題,在art/build/Android.common_build.mk 中將host 預設編輯器使用clang關掉,找到WITHOUT_HOST_CLANG

關閉clang:

#Host.
 ART_HOST_CLANG := false
 ifneq ($(WITHOUT_HOST_CLANG),true)
 # By default, host builds use clang for better warnings.
 ART_HOST_CLANG := false
 endif

編譯的時候,記憶體貌似占用不是太多,CPU消耗得太多。

跟之前在虛擬機器上編譯得不太一樣,虛擬機器太吃記憶體,以下是真機編譯Android6.0的時候,記憶體和CPU的占用情況。

最後,終於編譯成功了:


IT145.com E-mail:sddin#qq.com