3

有人知道如何在编译 AOSP (Master) 时完全禁用千斤顶吗?

我一直对jack有问题,所以我总是通过添加BoardConfig.mkANDROID_COMPILE_WITH_JACK := false来关闭它(在编译 CyanogenMod 时)。我现在正在编译 aosp,它似乎忽略了这个命令。

注意:我并没有真正尝试解决我遇到的任何与插孔相关的问题,我正在尝试将其关闭。

4

2 回答 2

7

您可以在不更改任何代码的情况下禁用 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

它还说明了为什么您在本地模块中的修改是徒劳的。

于 2017-07-06T09:43:47.637 回答
5

我建议使用 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_ENABLEDAndroid.mk 中的每个模块,要么使用变量定义全局默认值DEFAULT_JACK_ENABLED

PS最好在Google Groups上问这样的问题:https ://groups.google.com/forum/#!forum/android-building

于 2016-05-31T11:06:31.647 回答