3

AOSP (マスター) のコンパイル中にジャックを完全に無効にする方法を知っている人はいますか?

私は常にjackに問題を抱えていたので、 BoardConfig.mk (CyanogenMod のコンパイル時) を追加ANDROID_COMPILE_WITH_JACK := falseして常にオフにしてきました。現在、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 タグを使用してビルドすることをお勧めします。たとえば、最新リリースのマシュマロは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/#!forum/android-building

于 2016-05-31T11:06:31.647 に答える