Since Soong currently doesn't support the `install_directory` functionality, `system/core/rootdir/Android.mk` cannot be directly converted to Android.bp. Moreover, its main content is to create directories and symlinks for the root file system. Therefore, we'll first rename it and move it to build/core/main.mk for handling. In addition, consolidate the handling of meta-lic related parts into `build/core/tasks/meta-lic.mk`. Bug: 353642907 Test: m -j init.environ.rc Change-Id: Ie8f8bcae5752d22c331b33a33981a959410f0a69
dex_preopt_check
dex_preopt_check
is a build-time check to make sure that all system server
jars are dexpreopted. When the check fails, you will see the following error
message:
FAILED:
build/make/core/tasks/dex_preopt_check.mk:13: warning: Missing compilation artifacts. Dexpreopting is not working for some system server jars
Offending entries:
Possible causes are:
-
There is an APEX/SDK mismatch. (E.g., the APEX is built from source while the SDK is built from prebuilt.)
-
The
systemserverclasspath_fragment
is not added assystemserverclasspath_fragments
of the correspondingapex
module, or not added asexported_systemserverclasspath_fragments
of the correspondingprebuilt_apex
/apex_set
module when building from prebuilt. -
The expected version of the system server java library is not preferred. (E.g., the
java_import
module hasprefer: false
when building from prebuilt.) -
Dexpreopting is disabled for the system server java library. This can be due to various reasons including but not limited to:
-
The java library has
dex_preopt: { enabled: false }
in the Android.bp file. -
The java library is listed in
DEXPREOPT_DISABLED_MODULES
in a Makefile. -
The java library is missing
installable: true
in the Android.bp file when building from source. -
Sanitizer is enabled.
-
-
PRODUCT_SYSTEM_SERVER_JARS
,PRODUCT_APEX_SYSTEM_SERVER_JARS
,PRODUCT_STANDALONE_SYSTEM_SERVER_JARS
, orPRODUCT_APEX_STANDALONE_SYSTEM_SERVER_JARS
has an extra entry that is not needed by the product.