Fix link apex for jni libs

When library_path is ":" splitted list of .jar files, we should iterate
over each .jar file path to link a proper APEX namespace for JNI lib.

Bug: 169826971
Test: libnativeloader_test
Test: move libicing to appsearch apex
Change-Id: I3df47203d336036d0e015f9c5421b30a0377087f
diff --git a/libnativeloader/library_namespaces.cpp b/libnativeloader/library_namespaces.cpp
index 2360819..8b87338 100644
--- a/libnativeloader/library_namespaces.cpp
+++ b/libnativeloader/library_namespaces.cpp
@@ -344,15 +344,17 @@
     }
   }
 
-  auto apex_ns_name = FindApexNamespaceName(dex_path);
-  if (apex_ns_name.ok()) {
-    const auto& jni_libs = apex_jni_libraries(*apex_ns_name);
-    if (jni_libs != "") {
-      auto apex_ns = NativeLoaderNamespace::GetExportedNamespace(*apex_ns_name, is_bridged);
-      if (apex_ns.ok()) {
-        linked = app_ns->Link(&apex_ns.value(), jni_libs);
-        if (!linked.ok()) {
-          return linked.error();
+  for (const std::string& each_jar_path : android::base::Split(dex_path, ":")) {
+    auto apex_ns_name = FindApexNamespaceName(each_jar_path);
+    if (apex_ns_name.ok()) {
+      const auto& jni_libs = apex_jni_libraries(*apex_ns_name);
+      if (jni_libs != "") {
+        auto apex_ns = NativeLoaderNamespace::GetExportedNamespace(*apex_ns_name, is_bridged);
+        if (apex_ns.ok()) {
+          linked = app_ns->Link(&apex_ns.value(), jni_libs);
+          if (!linked.ok()) {
+            return linked.error();
+          }
         }
       }
     }