aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rwxr-xr-xjava/app.go7
-rw-r--r--java/app_test.go13
2 files changed, 16 insertions, 4 deletions
diff --git a/java/app.go b/java/app.go
index d9376540..f81a7646 100755
--- a/java/app.go
+++ b/java/app.go
@@ -218,6 +218,13 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) {
for _, jniTarget := range ctx.MultiTargets() {
variation := append(jniTarget.Variations(),
blueprint.Variation{Mutator: "link", Variation: "shared"})
+
+ // If the app builds against an Android SDK use the SDK variant of JNI dependencies
+ // unless jni_uses_platform_apis is set.
+ if a.sdkVersion().specified() && a.sdkVersion().kind != sdkCorePlatform &&
+ !Bool(a.appProperties.Jni_uses_platform_apis) {
+ variation = append(variation, blueprint.Variation{Mutator: "sdk", Variation: "sdk"})
+ }
ctx.AddFarVariationDependencies(variation, tag, a.appProperties.Jni_libs...)
}
diff --git a/java/app_test.go b/java/app_test.go
index 388014f4..49dbd127 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -893,6 +893,7 @@ func TestJNIABI(t *testing.T) {
cc_library {
name: "libjni",
system_shared_libs: [],
+ sdk_version: "current",
stl: "none",
}
@@ -1030,26 +1031,26 @@ func TestJNIPackaging(t *testing.T) {
android_test {
name: "test",
- sdk_version: "core_platform",
+ sdk_version: "current",
jni_libs: ["libjni"],
}
android_test {
name: "test_noembed",
- sdk_version: "core_platform",
+ sdk_version: "current",
jni_libs: ["libjni"],
use_embedded_native_libs: false,
}
android_test_helper_app {
name: "test_helper",
- sdk_version: "core_platform",
+ sdk_version: "current",
jni_libs: ["libjni"],
}
android_test_helper_app {
name: "test_helper_noembed",
- sdk_version: "core_platform",
+ sdk_version: "current",
jni_libs: ["libjni"],
use_embedded_native_libs: false,
}
@@ -1081,6 +1082,10 @@ func TestJNIPackaging(t *testing.T) {
if g, w := !strings.Contains(jniLibZip.Args["jarArgs"], "-L 0"), test.compressed; g != w {
t.Errorf("expected jni compressed %v, got %v", w, g)
}
+
+ if !strings.Contains(jniLibZip.Implicits[0].String(), "_sdk_") {
+ t.Errorf("expected input %q to use sdk variant", jniLibZip.Implicits[0].String())
+ }
}
})
}