不能 运行 android 应用程序与库项目和 JNI 在一起

Can't run android app with library project and JNI together

我正在尝试 运行 一个 android 应用程序与两个亲戚:

  1. CSipSimple 库项目。

  2. .so 使用 JNI 加载的库。

当 运行仅使用 .so 库来安装应用程序时,它工作得很好,但是当 运行在添加 CSipSimple 项目后安装它时,它找不到 .so 库并给我以下异常:

09-22 17:18:02.650: W/System.err(13662): java.lang.UnsatisfiedLinkError: 无法从加载程序 dalvik.system.PathClassLoader[DexPathList[[zip文件“/data/app/com.automation.isolace-2.apk”],nativeLibraryDirectories=[/data/app-lib/com.automation.isolace-2,/vendor/lib,/system/lib ]]]: findLibrary 返回空 09-22 17:18:02.650: W/System.err(13662): 在 java.lang.Runtime.loadLibrary(Runtime.java:358) 09-22 17:18:02.650: W/System.err(13662): 在 java.lang.System.loadLibrary(System.java:526) 09-22 17:18:02.650: W/System.err(13662): 在 com.company.NetSDK.INetSDK.LoadLibrarys(INetSDK.java:26) 09-22 17:18:02.650: W/System.err(13662): 在 com.company.NetSDK.INetSDK.(INetSDK.java:6) 09-22 17:18:02.650: W/System.err(13662): 在 com.automation.isolace.VideoViewActivity$3.run(VideoViewActivity.java:137)

方法LoadLibraries:

/*    */   public static void LoadLibrarys()
/*    */   {
/*    */     try
/*    */     {
/* 17 */       String strOSType = System.getProperty("os.name");
/* 18 */       if (strOSType.contains("Window"))
/*    */       {
/* 20 */         System.loadLibrary("dhconfigsdk");
/* 21 */         System.loadLibrary("dhnetsdk");
/* 22 */         System.loadLibrary("netsdk");
/*    */       }
/*    */       else
/*    */       {
/* 26 */         System.loadLibrary("dvr");
/* 27 */         System.loadLibrary("configsdk");
/* 28 */         System.loadLibrary("netsdk");
/* 29 */         System.loadLibrary("sdk");
/*    */       }
/*    */     } catch (UnsatisfiedLinkError ulink) {
/* 32 */       ulink.printStackTrace();
/*    */     }
/*    */   }

以及我的应用程序的层次结构:

这可能是因为 libs/armeabilibs/armeabi-v7a 中的库不同,例如 libs/armeabi-v7a 只包含 .so 库的子集。添加库项目依赖项时,还应检查其 libs/armeabi & libs/armeabi-v7a 文件夹。