summaryrefslogtreecommitdiff
path: root/test-legacy/Android.mk
diff options
context:
space:
mode:
Diffstat (limited to 'test-legacy/Android.mk')
-rw-r--r--test-legacy/Android.mk25
1 files changed, 22 insertions, 3 deletions
diff --git a/test-legacy/Android.mk b/test-legacy/Android.mk
index af26c5b80717..da47de0a3d35 100644
--- a/test-legacy/Android.mk
+++ b/test-legacy/Android.mk
@@ -24,16 +24,35 @@ ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)))
# Built against the SDK so that it can be statically included in APKs
# without breaking link type checks.
#
+# This builds directly from the source rather than simply statically
+# including the android.test.base-minus-junit and
+# android.test.runner-minus-junit libraries because the latter library
+# cannot itself be built against the SDK. That is because it uses on
+# an internal method (setTestContext) on the AndroidTestCase class.
+# That class is provided by both the android.test.base-minus-junit and
+# the current SDK and as the latter is first on the classpath its
+# version is used. Unfortunately, it does not provide the internal
+# method and so compilation fails.
+#
+# Building from source avoids that because the compiler will use the
+# source version of AndroidTestCase instead of the one from the current
+# SDK.
+#
+# The use of the internal method does not prevent this from being
+# statically included because the class that provides the method is
+# also included in this library.
include $(CLEAR_VARS)
LOCAL_MODULE := android.test.legacy
+LOCAL_SRC_FILES := \
+ $(call all-java-files-under, ../test-base/src/android) \
+ $(call all-java-files-under, ../test-base/src/com) \
+ $(call all-java-files-under, ../test-runner/src/android) \
+
LOCAL_SDK_VERSION := current
LOCAL_JAVA_LIBRARIES := junit android.test.mock.stubs
-LOCAL_STATIC_JAVA_LIBRARIES := \
- android.test.base-minus-junit \
- android.test.runner-minus-junit \
include $(BUILD_STATIC_JAVA_LIBRARY)