2021-05-12 14:32:11
使用Ubuntu 17.04編譯Android 6.0原始碼
在安裝了最新的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的占用情況。
最後,終於編譯成功了:
相關文章