[英]Can't run android app with library project and JNI together
我正在尝试与两个亲戚一起运行android应用程序:
CSipSimple库项目。
.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返回null 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/armeabi
和libs/armeabi-v7a
中的libs/armeabi-v7a
不同,例如libs/armeabi-v7a
仅包含.so库的子集。 添加库项目依赖项时,还应检查其libs/armeabi
和libs/armeabi-v7a
文件夹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.