Use arg list file to pass arguments to jar.

To fix error "/bin/bash: Argument list too long"

Change-Id: Ie336b18f9a7eba38d94a6e32c07a88589ce9f1fd
This commit is contained in:
Ying Wang 2011-06-06 14:34:52 -07:00
parent 4387dc3ee1
commit 194a8ec8ae
2 changed files with 7 additions and 4 deletions

View File

@ -368,10 +368,11 @@ ifdef java_resource_file_groups
) \
)
# The arguments to jar that will include these files in a jar file.
# Quote the file name to handle special characters (such as #) correctly.
extra_jar_args := \
$(foreach group,$(java_resource_file_groups), \
$(addprefix -C $(word 1,$(subst :,$(space),$(group))) , \
$(wordlist 2,9999,$(subst :,$(space),$(group))) \
$(addprefix -C "$(word 1,$(subst :,$(space),$(group)))" , \
$(foreach w, $(wordlist 2,9999,$(subst :,$(space),$(group))), "$(w)" ) \
) \
)
java_resource_file_groups :=

View File

@ -1576,7 +1576,9 @@ rm -f $(_adtp_classes.dex))
endef
define add-java-resources-to-package
$(hide) jar uf $@ $(PRIVATE_EXTRA_JAR_ARGS)
$(call dump-words-to-file, $(PRIVATE_EXTRA_JAR_ARGS), $(dir $@)jar-arg-list)
$(hide) jar uf $@ @$(dir $@)jar-arg-list
@rm -f $(dir $@)jar-arg-list
endef
# Sign a package using the specified key/cert.
@ -1619,7 +1621,7 @@ endef
define transform-host-java-to-package
@echo "host Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))"
$(call compile-java,$(HOST_JAVAC),$(PRIVATE_BOOTCLASSPATH))
$(hide) if [ ! -z "$(PRIVATE_EXTRA_JAR_ARGS)" ]; then jar uf $@ $(PRIVATE_EXTRA_JAR_ARGS); fi
$(if $(PRIVATE_EXTRA_JAR_ARGS), $(call add-java-resources-to-package))
endef
###########################################################