diff options
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.java | 15 |
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) { |