Отключение JACK в компиляции Android

Кто-нибудь знает, как полностью отключить джек при компиляции AOSP (Master)?

У меня всегда были проблемы с домкратом, поэтому я всегда выключал его, добавляя ANDROID_COMPILE_WITH_JACK := false в BoardConfig.mk (при компиляции CyanogenMod). Сейчас я компилирую aosp, и кажется, что эта команда игнорируется.

Примечание: я на самом деле не пытаюсь решить какие-либо проблемы, связанные с джеком, я пытаюсь отключить его.

2 ответа

Вы можете отключить JACK без изменения какого-либо кода.

make ANDROID_COMPILE_WITH_JACK:=false

Просто сделайте это при создании всего Android Project.

Магия в 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 для сборки вместо основной ветки. Например, последний выпущенный 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: https://groups.google.com/forum/

Другие вопросы по тегам