Merge "Add a doc about dex_preopt_check
." am: a3dc792131
Original change: https://android-review.googlesource.com/c/platform/build/+/2098894 Change-Id: Iffc66963dd62ec1e96f6d68552c6d1de6b693a56 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
eabde79e55
3 changed files with 46 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
per-file dex_preopt*.* = ngeoffray@google.com,skvadrik@google.com
|
||||
per-file *dex_preopt*.* = ngeoffray@google.com,skvadrik@google.com
|
||||
per-file verify_uses_libraries.sh = ngeoffray@google.com,skvadrik@google.com
|
||||
|
||||
# For version updates
|
||||
|
|
43
core/tasks/README.dex_preopt_check.md
Normal file
43
core/tasks/README.dex_preopt_check.md
Normal file
|
@ -0,0 +1,43 @@
|
|||
# `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:
|
||||
|
||||
1. There is an APEX/SDK mismatch. (E.g., the APEX is built from source while
|
||||
the SDK is built from prebuilt.)
|
||||
|
||||
1. The `systemserverclasspath_fragment` is not added as
|
||||
`systemserverclasspath_fragments` of the corresponding `apex` module, or not
|
||||
added as `exported_systemserverclasspath_fragments` of the corresponding
|
||||
`prebuilt_apex`/`apex_set` module when building from prebuilt.
|
||||
|
||||
1. The expected version of the system server java library is not preferred.
|
||||
(E.g., the `java_import` module has `prefer: false` when building from
|
||||
prebuilt.)
|
||||
|
||||
1. 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.
|
||||
|
||||
1. `PRODUCT_SYSTEM_SERVER_JARS`, `PRODUCT_APEX_SYSTEM_SERVER_JARS`,
|
||||
`PRODUCT_STANDALONE_SYSTEM_SERVER_JARS`, or
|
||||
`PRODUCT_APEX_STANDALONE_SYSTEM_SERVER_JARS` has an extra entry that is not
|
||||
needed by the product.
|
|
@ -12,7 +12,8 @@ ifneq (true,$(DISABLE_DEXPREOPT_CHECK))
|
|||
ifneq (,$(filter services,$(PRODUCT_PACKAGES)))
|
||||
$(call maybe-print-list-and-error,\
|
||||
$(filter-out $(ALL_DEFAULT_INSTALLED_MODULES),$(DEXPREOPT_SYSTEMSERVER_ARTIFACTS)),\
|
||||
Missing compilation artifacts. Dexpreopting is not working for some system server jars \
|
||||
Missing compilation artifacts. Dexpreopting is not working for some system server jars. See \
|
||||
https://cs.android.com/android/platform/superproject/+/master:build/make/core/tasks/README.dex_preopt_check.md \
|
||||
)
|
||||
endif
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue