Mac 10.13 編譯Android 8.1 源碼

Mac OSX 10.13 編譯Android 8.1 源碼

記錄一下編譯源碼時候爬的坑~~~

僅為學習Android Framework用史汗,不編譯ROM

下載及編譯流程參照

http://www.reibang.com/p/759a6677c946

原文是編譯6.0,這里是針對編譯8.1進行修改伏嗜,以及對可能出現的問題進行補充說明

建議先閱讀該文章后垮斯,再看這里的修改

感謝原作者

環(huán)境:

MBP 256G

Mac OSX 10.13

JDK8u151(與此次編譯源碼無關草戈,用這個版本是因為只有它可以打開Device Monitor)

MacOSX10.13.sdk

下載:

1:網絡

我這里是連的Google坪创,100M帶寬2-3小時左右

2:磁盤

按照原文配置大小寫敏感的鏡像

但是要注意:空間分配上面炕婶,我這里256GB的磁盤空間不夠!@吃ぁ柠掂!
一開始分了150GB,完整編譯源碼時還是報容量不足依沮,后來就只編了Framework
如果你是跟我一樣的用途涯贞,這里分100GB即可。如果需要完整編譯危喉,
建議根據自己硬盤空間情況宋渔,酌情設置鏡像大小(建議越大越好辜限,至少200GB傻谁。這個分配以后不會直接占用空間,寫入文件后才會增長)

3:開始下載

repo init

改為

repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r15

原文是編譯6.0列粪,我這里是8.1审磁,所以就換了個8.1的分支

編譯:

原文是10.12的SDK,實測現在(2018/09/23)下載XCode后岂座,會自帶10.13的SDK态蒂,我們用這個就好,不必下載10.12
原文需要修改mac_version.mk费什,然而8.1的源碼里并沒有這個文件钾恢,無需處理
lunch后,選擇版本鸳址,原文是編譯ROM到手機上刷機用瘩蚪,這里只需要選擇x86-x64就好
如果需要全部編譯,在根目錄下執(zhí)行

make

如果你只需要Framework稿黍,在根目錄下執(zhí)行

make framework

4:如果一切順利的話疹瘦,這時候按照原文來處理就結束了

5:然而,順利是不可能順利的巡球,這輩子都不可能順利的

6:遇到的問題(劃重點)

這里的問題基本是必定會報言沐,可以提前修好再去編譯

(1):Could not find a supported mac sdk: ["10.10" "10.11" "10.12"]

默認編譯只支持上面寫的那幾個SDK,然鵝我們用的是10.13酣栈,怎么辦呢险胰?

vim build/soong/cc/config/x86_darwin_host.go 

把10.13加上去

SDK.jpg

(2):Could not find jdk tools.jar at /lib/tools.jar, please check if your JDK was installed correctly

首先確保你的JDK環(huán)境變量是配置正確的

sudo vim /etc/profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后你會發(fā)現,配置正確也并沒什么X用

vim build/core/find-jdk-tools-jar.sh

這個腳本里面矿筝,Google定義的是ANDROID_JAVA_HOME
驚不驚喜起便,意不意外?【手動滑稽】
很簡單了窖维,要么你再配置一份ANDROID_JAVA_HOME榆综,要么直接把這個腳本改成JAVA_HOME

JAVA_HOME.jpg

(3):ninja: build stopped: subcommand failed

原因:
With format string strictness, High Sierra also enforces that %n
isn't used in dynamic format strings, but we should just disable
its use on darwin in general.

修復:cherry-pick一個commit

cd external/bison
git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160
mm

如果還是報錯

回到根目錄
source build/envsetup.sh
lunch 然后選擇對應版本
cd external/bison
mm
回到根目錄 
cp /Volumes/AOSP/out/host/darwin-x86/bin/bison /Volumes/AOSP/prebuilts/misc/darwin-x86/bison/

(4):ninja: build stopped: subcommand failed / Out of Memory

編譯分配的內存不夠

cd out/host/darwin-x86
jack-admin stop-server
vim jack-admin

修改487行

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"

改為

JACK_SERVER_COMMAND="java -Xmx3g -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
jack-admin start-server

如果報錯,先執(zhí)行

jack-admin install-server

7:編譯完成

MBP 2015陈辱,i7-4750H + 16G奖年,只編譯Framework,花了30分鐘左右沛贪。
完成后按照原文所說陋守,用idea查看即可
放個和正常Android項目的對比圖

Normal Project.jpg
Source Code.jpg

可以看到,已經可以打開@hide的API了

參考

http://www.reibang.com/p/ff37e58b0615

https://blog.csdn.net/u013553529/article/details/54869266

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末利赋,一起剝皮案震驚了整個濱河市水评,隨后出現的幾起案子,更是在濱河造成了極大的恐慌媚送,老刑警劉巖中燥,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異塘偎,居然都是意外死亡疗涉,警方通過查閱死者的電腦和手機拿霉,發(fā)現死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咱扣,“玉大人绽淘,你說我怎么就攤上這事∧治保” “怎么了沪铭?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偏瓤。 經常有香客問我杀怠,道長,這世上最難降的妖魔是什么厅克? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任赔退,我火速辦了婚禮,結果婚禮上已骇,老公的妹妹穿的比我還像新娘离钝。我一直安慰自己,他們只是感情好褪储,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布卵渴。 她就那樣靜靜地躺著,像睡著了一般鲤竹。 火紅的嫁衣襯著肌膚如雪浪读。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天辛藻,我揣著相機與錄音碘橘,去河邊找鬼。 笑死吱肌,一個胖子當著我的面吹牛痘拆,可吹牛的內容都是我干的。 我是一名探鬼主播氮墨,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼纺蛆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了规揪?” 一聲冷哼從身側響起桥氏,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎猛铅,沒想到半個月后字支,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年堕伪,在試婚紗的時候發(fā)現自己被綠了揖庄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡欠雌,死狀恐怖抠艾,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情桨昙,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布腌歉,位于F島的核電站蛙酪,受9級特大地震影響,放射性物質發(fā)生泄漏翘盖。R本人自食惡果不足惜桂塞,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馍驯。 院中可真熱鬧阁危,春花似錦、人聲如沸汰瘫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽混弥。三九已至趴乡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝗拿,已是汗流浹背晾捏。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哀托,地道東北人惦辛。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像仓手,于是被迫代替她去往敵國和親胖齐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,332評論 25 707
  • 用兩張圖告訴你俗或,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料市怎? 從這篇文章中你...
    hw1212閱讀 12,754評論 2 59
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網絡請求組件 FMDB本地數據庫組件 SD...
    陽明先生_X自主閱讀 15,988評論 3 119
  • 對,就是想說這個,在健身房扛著沉重的杠鈴驰弄,堅持不住的時候麻汰,在跑道上沖刺,上氣不接下氣的時候戚篙,請你五鲫,別忘了提醒自己,...
    山上有云閱讀 1,102評論 3 6
  • 我喜歡這個世界是柔軟的 一場雪不會壓傷天地萬物 最早最深層的那些雪花 也還是乍開放的完整 清潔 我喜歡這個世界是溫...
    風情公子閱讀 540評論 0 0