aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index 2a36d8df5f..76d8d5702f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -1042,13 +1042,14 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
.addInputArgument(javaResourceZip);
}
- for (Map.Entry<String, Iterable<Artifact>> entry : nativeLibs.getMap().entrySet()) {
- for (Artifact library : entry.getValue()) {
- actionBuilder
- .addArgument("-nl")
- .addArgument(entry.getKey())
- .addInputArgument(library);
- }
+ ImmutableList<Artifact> nativeSymlinks = nativeLibs.createApkBuilderSymlinks(ruleContext);
+ if (!nativeSymlinks.isEmpty()) {
+ actionBuilder
+ .addInputs(nativeSymlinks)
+ .addArgument("-nf")
+ // If the native libs are "foo/bar/x86/foo.so", we need to pass "foo/bar" here
+ .addArgument(nativeSymlinks.get(0).getExecPath()
+ .getParentDirectory().getParentDirectory().getPathString());
}
if (nativeLibs.getName() != null) {