2016-04-17 21 views
3

有人知道如何在編譯AOSP(主)時完全禁用插孔嗎?在Android編譯中禁用J​​ACK

我一直有問題,插孔,所以我(編譯的CyanogenMod時)在BoardConfig.mk只是一直把它關掉,加入ANDROID_COMPILE_WITH_JACK := false。 我現在正在編譯aosp,它似乎忽略了這個命令。

注意:我並非真的試圖解決任何插孔相關的問題,我試圖關閉它。

回答

5

我會推薦使用AOSP標籤來構建而不是主分支。例如,最新發布的棉花糖是android-6.0.1_r43標籤。

那麼讓我們來看看clear_vars.mk負責默認值: https://android.googlesource.com/platform/build/+/android-6.0.1_r43/core/clear_vars.mk#110

LOCAL_JACK_ENABLED:= $(DEFAULT_JACK_ENABLED)# ''(即禁用),殘疾人,完全,增量

因此,您必須重寫LOCAL_JACK_ENABLED Android.mk中的每個模塊使用DEFAULT_JACK_ENABLED變量定義全局默認值。

P.S.最好在Google網上論壇上提出這樣的問題:https://groups.google.com/forum/#!forum/android-building

3

您可以在不更改任何代碼的情況下禁用JACK。

make ANDROID_COMPILE_WITH_JACK:=false 

只是在製作整個Android項目時做。

神奇的是在build/make/combo/javac.mk

ifndef ANDROID_COMPILE_WITH_JACK 
# Defines if compilation with jack is enabled by default. 
ANDROID_COMPILE_WITH_JACK := true 
endif 

而且build/make/core/config.mk

ifeq ($(ANDROID_COMPILE_WITH_JACK),true) 
DEFAULT_JACK_ENABLED:=full 
else 
DEFAULT_JACK_ENABLED:= 
endif 

而且build/make/core/clear_vars.mk

LOCAL_JACK_ENABLED:=DEFAULT_JACK_ENABLED 

這也充分說明,爲什麼本地模塊在你的修改是徒勞的。