有人知道如何在编译AOSP(Master)时完全禁用插孔吗?
我一直遇到 jack 的问题,所以我总是通过在 BoardConfig.mk 中添加ANDROID_COMPILE_WITH_JACK := false
来关闭它(编译CyanogenMod时) )。
我现在正在编译aosp,它似乎忽略了这个命令。
注意:我并没有真正尝试解决任何 jack 相关问题,我正试图将其关闭。
答案 0 :(得分:6)
我建议使用AOSP标记来构建而不是使用master分支。例如,最新发布的Marshmallow是 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)#'' (即禁用),禁用,完整,增量
因此,您必须覆盖Android.mk中每个模块的LOCAL_JACK_ENABLED
或使用DEFAULT_JACK_ENABLED
变量定义全局默认值。
P.S。最好在Google网上论坛上提出这样的问题:https://groups.google.com/forum/#!forum/android-building
答案 1 :(得分:5)
您可以在不更改任何代码的情况下禁用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
它还说明了为什么您在本地模块中的修改是徒劳的。