diff --git a/core/java_common.mk b/core/java_common.mk index 99fa6d20f..9fd6bfed5 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -232,6 +232,11 @@ my_system_modules := ifndef LOCAL_IS_HOST_MODULE sdk_libs := + # When an sdk lib name is listed in LOCAL_JAVA_LIBRARIES, move it to LOCAL_SDK_LIBRARIES, so that + # it is correctly redirected to the stubs library. + LOCAL_SDK_LIBRARIES += $(filter $(JAVA_SDK_LIBRARIES),$(LOCAL_JAVA_LIBRARIES)) + LOCAL_JAVA_LIBRARIES := $(filter-out $(JAVA_SDK_LIBRARIES),$(LOCAL_JAVA_LIBRARIES)) + ifeq ($(LOCAL_SDK_VERSION),) ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true) # No bootclasspath. But we still need "" to prevent javac from using default host bootclasspath. @@ -245,6 +250,9 @@ ifndef LOCAL_IS_HOST_MODULE LOCAL_JAVA_LIBRARIES := $(filter-out $(TARGET_DEFAULT_BOOTCLASSPATH_LIBRARIES) $(TARGET_DEFAULT_JAVA_LIBRARIES),$(LOCAL_JAVA_LIBRARIES)) my_system_modules := $(DEFAULT_SYSTEM_MODULES) endif # LOCAL_NO_STANDARD_LIBRARIES + # When SDK libraries are referenced from modules built without SDK, provide the system stub to them + # because it has the largest API surface. + sdk_libs := $(foreach lib_name,$(LOCAL_SDK_LIBRARIES),$(lib_name).stubs.system) else ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true) $(call pretty-error,Must not define both LOCAL_NO_STANDARD_LIBRARIES and LOCAL_SDK_VERSION)