有人知道如何在编译 AOSP (Master) 时完全禁用千斤顶吗?
我一直对jack有问题,所以我总是通过添加BoardConfig.mkANDROID_COMPILE_WITH_JACK := false
来关闭它(在编译 CyanogenMod 时)。我现在正在编译 aosp,它似乎忽略了这个命令。
注意:我并没有真正尝试解决我遇到的任何与插孔相关的问题,我正在尝试将其关闭。
有人知道如何在编译 AOSP (Master) 时完全禁用千斤顶吗?
我一直对jack有问题,所以我总是通过添加BoardConfig.mkANDROID_COMPILE_WITH_JACK := false
来关闭它(在编译 CyanogenMod 时)。我现在正在编译 aosp,它似乎忽略了这个命令。
注意:我并没有真正尝试解决我遇到的任何与插孔相关的问题,我正在尝试将其关闭。
您可以在不更改任何代码的情况下禁用 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
它还说明了为什么您在本地模块中的修改是徒劳的。
我建议使用 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) # ''(即禁用),禁用,完整,增量
因此,您要么必须覆盖LOCAL_JACK_ENABLED
Android.mk 中的每个模块,要么使用变量定义全局默认值DEFAULT_JACK_ENABLED
。
PS最好在Google Groups上问这样的问题:https ://groups.google.com/forum/#!forum/android-building