Original change: https://android-review.googlesource.com/c/platform/build/+/3271533 Change-Id: Ib0b10e96a60ee209eb16b915b50b1acabfcc9136 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> |
||
|---|---|---|
| .. | ||
| tools | ||
| art-host-tests.mk | ||
| art.mk | ||
| automotive-general-tests.mk | ||
| automotive-sdv-tests.mk | ||
| automotive-tests.mk | ||
| berberis_test.mk | ||
| build_custom_images.mk | ||
| catbox.mk | ||
| csuite.mk | ||
| cts.mk | ||
| cts_root.mk | ||
| device-platinum-tests.mk | ||
| device-tests.mk | ||
| dex_preopt_check.mk | ||
| find-shareduid-violation.mk | ||
| fontchain_lint.mk | ||
| general-tests-shared-libs.mk | ||
| general-tests.mk | ||
| host-unit-tests.mk | ||
| host_init_verifier.mk | ||
| mcts.mk | ||
| meta-lic.mk | ||
| mke2fs-dist.mk | ||
| module-info.mk | ||
| mts.mk | ||
| multitree.mk | ||
| oem_image.mk | ||
| offline-sdk-docs.mk | ||
| owners.mk | ||
| performance-tests.mk | ||
| platform_availability_check.mk | ||
| README.dex_preopt_check.md | ||
| sdk-addon.mk | ||
| sts-sdk.mk | ||
| sts.mk | ||
| test_mapping.mk | ||
| tradefed-tests-list.mk | ||
| vendor_module_check.mk | ||
| vts-core-tests.mk | ||
| with-license.mk | ||
| wvts.mk | ||
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_fragmentis not added assystemserverclasspath_fragmentsof the correspondingapexmodule, or not added asexported_systemserverclasspath_fragmentsof the correspondingprebuilt_apex/apex_setmodule when building from prebuilt. -
The expected version of the system server java library is not preferred. (E.g., the
java_importmodule hasprefer: falsewhen 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_MODULESin a Makefile. -
The java library is missing
installable: truein 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_JARShas an extra entry that is not needed by the product.