Commit Graph

13 Commits

Author SHA1 Message Date
Ying Wang d4a41953fe am 0187511e: am 4243532d: am 301843ae: am 29e44b7a: Merge "Fix for "dexopt: No such file or directory" error"
* commit '0187511e70960618ac5c84f1446ec955ba6c8955':
  Fix for "dexopt: No such file or directory" error
2012-03-20 19:36:30 -07:00
Haruyasu Ishida 5c97da76ad Fix for "dexopt: No such file or directory" error
When common_javalib.jar is created, both LOCAL_BUILT_MODULE and
built_odex targets can be run.

If built_odex target runs before the directory is created by
LOCAL_BUILT_MODULE target, the error occurs.

Change-Id: I1ebcb27630f8373558da6acdfce95f5cdf714bbf
2012-01-27 09:25:20 +01:00
Ying Wang 20e2083ea0 Support to build static Java library with Android resource
Bug: 5714516

The rationale behind this change:
- the library is compiled into a jar file, but its R class is generated
  making the constant not constant (static, not final static) (aapt
  option --non-constant-id). Also the jar file does not contain the R
  class.
- this allows the integer value to not be inlined in the compiled
  class files. Note that this prevents using switch statements.
- the main project use this jar file as a normal static library: it will
  add all the class files except the R.class.
- the main project uses the library res folder as a resource
  folder with lower priority than the main project (basically the
  main project is an overlay. This is accomplished using aapt's
  --auto-add-overlay to handle resources only in the main project
  (which the normal overlay mechanism doesn't allow).
- the main project creates R classes in the main project's
  package but also in the library's package. This is done with
  aapt's --extra-packages which accept as many packages as
  needed, separated by a :.
- manifest merging is not done yet, so
  activities/services/permissions/etc... have to be manually declared in
  the main app.

To use a static library with Android resource in your app,
1. Add the library's resource dir to your app as an overlay:
LOCAL_RESOURCE_DIR := <app_resource_dir> <static_library_resource_dirs>
2. Set the proper aapt flags:
LOCAL_AAPT_FLAGS := <apps_own_flags> --auto-add-overlay \
  --extra-packages <lib1_package_name>:<lib2_package_name>:...

Change-Id: Ifb4d2300b952ea4aaee74da1bb0c6c72ea0698a3
2011-12-14 16:04:59 -08:00
Ying Wang 79e3dec83e new LOCAL_DEX_PREOPT option "nostripping"
Set "LOCAL_DEX_PREOPT := nostripping" to do dex-preopt while not strip
the classes.dex.

Bug: 5396625 5502338
Change-Id: Ie8dea4414ebeefeae89c6433b246faea27baa5e7
2011-10-24 12:29:25 -07:00
Brian Carlstrom bb7c6d88c6 Tracking merge of dalvik-dev to master
git cherry-pick --no-commit  5fac8d8f7096d8a950acad1ad0a8b963cef72e03

git cherry-pick --no-commit  1a8210710b46a0796ff2f8e76b6beb3a54f89019

git cherry-pick --no-commit  4fe2ac9f7284b838393aec8f0f48caef2510fd46

git cherry-pick --no-commit  7beb710a8f976fc4cb1e8be780644386870c4975

Change-Id: Ib10348e5509c906c6b95fa4accd6a18900bfe748
2011-04-01 15:45:58 -07:00
Ying Wang 94978cf495 Disable dexpreopt for unbundled build.
Change-Id: Iad0cc41cfad2533703a0dddad743720c43ddb667
2011-01-12 11:12:06 -08:00
Ying Wang a83940fa78 Move odex related files to product-specific dir.
For target Java libraries, now the LOCAL_BUILT_MODULE includes both javalib.jar
and the .odex file, if dexpreopt is enabled.
These 2 files are moved to a product-specific dir in this change.
For target Java Libraries, $(intermediates) now points to the product-specific dir.
There is still a javalib.jar in the $(intermediates.COMMON) dir, which is used as dependency.
Nothing is changed for host Java libraries.

Change-Id: I2546dbb940c74537864ca002d1acb49bb731fbbc
2010-10-01 14:41:43 -07:00
Ying Wang 30090e41e3 Set the intermediate dirs before using them.
Change-Id: Ibdab1234ca8c5a86c5226ed71e84374c3fcd7a90
2010-09-27 14:53:39 -07:00
Ying Wang 9049e321ae Add javalib.dex.jar to LOCAL_INTERMEDIATE_TARGETS
So the its target-specific PRIVATE vars can be set properly.

Change-Id: I83b60bd56ee8523b0ba97092010c76c270b60c02
2010-09-27 14:07:17 -07:00
Ying Wang e7874c4308 Integrate dexpreopt into the build system.
Change-Id: Id67f85d0f5c8674f5bc22e431114ca73625811ef
2010-09-22 16:51:53 -07:00
The Android Open Source Project 88b607994a auto import from //depot/cupcake/@135843 2009-03-03 19:28:42 -08:00
The Android Open Source Project 05806d7af6 auto import from //depot/cupcake/@135843 2009-03-03 18:28:14 -08:00
The Android Open Source Project b6c1cf6de7 Initial Contribution 2008-10-21 07:00:00 -07:00