Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法加载为旧版Android(可能是2.3.x)构建的本机第三方库_Java_Android_C++_Android Ndk_Java Native Interface - Fatal编程技术网

Java 无法加载为旧版Android(可能是2.3.x)构建的本机第三方库

Java 无法加载为旧版Android(可能是2.3.x)构建的本机第三方库,java,android,c++,android-ndk,java-native-interface,Java,Android,C++,Android Ndk,Java Native Interface,我使用一个第三方/第二方本机库(称为libmc\u eruconverter\u lv2\u for\u android\u jni.so) 我正试图调试一个致命的异常,它只在我的应用程序在Android L(5.0)上运行时发生 10-2312:43:03.513:E/艺术(2177): dlopen(“/data/app/com.ocean.web3d.lib-2/lib/arm/libmc\u eruconverter\u lv2\u for_android\u jni.so”, RTLD

我使用一个第三方/第二方本机库(称为libmc\u eruconverter\u lv2\u for\u android\u jni.so) 我正试图调试一个致命的异常,它只在我的应用程序在Android L(5.0)上运行时发生

10-2312:43:03.513:E/艺术(2177):
dlopen(“/data/app/com.ocean.web3d.lib-2/lib/arm/libmc\u eruconverter\u lv2\u for_android\u jni.so”,
RTLD_LAZY)失败:dlopen失败:无法加载库“libdvm.so”
“libmc_eruconverter_lv2_for_android_jni.so”所需;由图书馆引起的
找不到“libdvm.so”
10-23 12:43:03.514:D/AndroidRuntime(2177):关闭虚拟机
10-23 12:43:03.514:D/AndroidRuntime(2177):------开始碰撞
10-23 12:43:03.515:E/AndroidRuntime(2177):致命异常:main
10-2312:43:03.515:E/AndroidRuntime(2177):过程:
com.ocean.web3d.lib,PID:2177
10-23 12:43:03.515:E/AndroidRuntime(2177):
java.lang.UnsatisfiedLinkError:dlopen失败:无法加载库
“libmc_eruconverter_lv2_for_android_jni.so”所需的“libdvm.so”;引起
未找到库“libdvm.so”
10-2312:43:03.515:E/AndroidRuntime(2177):在
java.lang.Runtime.loadLibrary(Runtime.java:371)
10-2312:43:03.515:E/AndroidRuntime(2177):在
java.lang.System.loadLibrary(System.java:989)
10-2312:43:03.515:E/AndroidRuntime(2177):在
oceanRenderer.com.ocean.web3d.lib.oceanRenderer.(oceanRenderer.java:18)
为了解决这个问题,, 我已尝试从以下方面更新我的开发环境: ATD 23.02(Eclipse 4.2.2)和NDK r8c 致: 带NDK r10c的ATD 23.04(Eclipse JUNO)

(仅供参考,我收到一条链接警告,因此我修改了我的Android.mk文件和 警告现在不是通过引用此线程修复的 )

此外,在Application.mk中,我已将我的APP_平台设置为21

然而,我仍然有一个致命的例外。 我几乎尝试了我能尝试的。。。 有谁能帮忙或给我一些建议吗?
提前非常感谢

看起来您现有的库与旧的Dalvik VM实现的内部相链接,这是非常不明智的。您的设备使用较新的Android运行时引擎,因此它没有旧库试图滥用的任何私有API。您可能需要从源代码处重建库(并希望在此过程中进行清理!),或者开始(可能是复杂而绝望的)项目,尝试创建一个包装器,在新功能的基础上模拟旧功能。嗨,Chris,非常感谢您的回复。因为我没有那个图书馆的来源。。。现在,我对您的第二种方法很感兴趣,但首先,是否可以查看libdvm.lib库中使用的函数类型?非常感谢。是的,您可以在ndk的objdump中看到一些,但是还有一个更新的工具ndk,哇!向前迈出了一大步!!!通过使用ndk depends和objdump,我确实找到了一些提示。非常感谢你!我真的很感激!我想知道的另一件事是,库希望从libdvm导入什么样的符号(函数)??objdump-d给了我所有的汇编代码,我想知道知道库使用的函数在技术上是否可行。。。也许我应该在旧ndk中找到与libdvm.so相关的头文件!?!?!?谢谢
10-23 12:43:03.513: E/art(2177):
dlopen("/data/app/com.ocean.web3d.lib-2/lib/arm/libmc_eruconverter_lv2_for_android_jni.so",
RTLD_LAZY) failed: dlopen failed: could not load library "libdvm.so"
needed by "libmc_eruconverter_lv2_for_android_jni.so"; caused by library
"libdvm.so" not found
10-23 12:43:03.514: D/AndroidRuntime(2177): Shutting down VM
10-23 12:43:03.514: D/AndroidRuntime(2177): --------- beginning of crash
10-23 12:43:03.515: E/AndroidRuntime(2177): FATAL EXCEPTION: main
10-23 12:43:03.515: E/AndroidRuntime(2177): Process:
com.ocean.web3d.lib, PID: 2177
10-23 12:43:03.515: E/AndroidRuntime(2177):
java.lang.UnsatisfiedLinkError: dlopen failed: could not load library
"libdvm.so" needed by "libmc_eruconverter_lv2_for_android_jni.so"; caused
by library "libdvm.so" not found
10-23 12:43:03.515: E/AndroidRuntime(2177): at
java.lang.Runtime.loadLibrary(Runtime.java:371)
10-23 12:43:03.515: E/AndroidRuntime(2177): at
java.lang.System.loadLibrary(System.java:989)
10-23 12:43:03.515: E/AndroidRuntime(2177): at
com.ocean.web3d.lib.oceanRenderer.<clinit>(oceanRenderer.java:18)