无法与库项目和JNI一起运行Android应用

时间:2015-09-22 14:30:31

标签: java android java-native-interface

我试图与两个亲戚一起运行Android应用程序:

  1. CSipSimple Library项目。

  2. 使用JNI加载
  3. .so个库。

  4. 仅使用.so库运行应用程序时,它运行正常,但在添加CSipSimple项目后运行它时,它无法找到.so库并给我以下内容例外:

    09-22 17:18:02.650:W / System.err(13662):java.lang.UnsatisfiedLinkError:无法从loader dalvik.system.PathClassLoader [dexPathList [[zip file&#34]加载dvr ; /data/app/com.automation.isolace-2.apk"],nativeLibraryDirectories = [/ data / app-lib / com.automation.isolace-2,/ vendor / lib,/ system / lib]]] :findLibrary返回null 09-22 17:18:02.650:W / System.err(13662):at java.lang.Runtime.loadLibrary(Runtime.java:358) 09-22 17:18:02.650:W / System.err(13662):at java.lang.System.loadLibrary(System.java:526) 09-22 17:18:02.650:W / System.err(13662):at com.company.NetSDK.INetSDK.LoadLibrarys(INetSDK.java:26) 09-22 17:18:02.650:W / System.err(13662):at com.company.NetSDK.INetSDK。(INetSDK.java:6) 09-22 17:18:02.650:W / System.err(13662):at 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();
    /*    */     }
    /*    */   }
    

    和我的应用的层次结构:

    enter image description here

1 个答案:

答案 0 :(得分:1)

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