我试图在我的 Android 应用程序中加载 Qt5Core 库,我得到了这个:
JNI_OnLoad returned bad version (-1) in /data/data/com.xxx.yyy/lib/libQt5Core.so 0x41a8f3c0
Failed to load library : Qt5Core due to link error unknown failure
java.lang.UnsatisfiedLinkError: unknown failure
at java.lang.Runtime.loadLibrary(Runtime.java:370)
这是我尝试加载它的方式:
System.loadLibrary(s);
其中“s”是一个包含多个库名称的数组。其他库已正确加载..
欢迎任何想法!
编辑
所以我先得到这个:
D/dalvikvm(11445): Trying to load lib /data/app-lib/com.xxx.yyy/libQt5Core.so 0x42666fd8
D/dalvikvm(11445): Added shared lib /data/app-lib/com.xxx.yyy/libQt5Core.so 0x42666fd8E/LibrariesLoader(11445): Failed to load library : Qt5Core due to link error JNI_ERR returned from JNI_OnLoad in "/data/app-lib/com.xxx.yyy/libQt5Core.so"
E/LibrariesLoader(11445): java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app-lib/com.xxx.yyy/libQt5Core.so"
...然后加载了另一个库,没有任何错误/警告。该库具有 Qt5Core.so 作为依赖项。
我已经调查过,由于以下代码,我得到了这个 JNI_ERR:
if (vm->GetEnv(&uenv.venv, JNI_VERSION_1_6) != JNI_OK)
return JNI_ERR;
我使用的 JNI 版本是 1.6!!!!
最佳答案
QtCore 的 JNI_OnLoad 在启动时加载名为“QtNative”的 Activity ,如果找不到则返回 JNI_ERR。
QtNative 在“QtAndroid-bundled.jar”中定义。您可以在 QT 5.3 SDK 文件夹中找到它: Qt5/5.3/android_armv7/jar/QtAndroid-bundled.jar
只需将其添加到项目的“libs”文件夹即可。
关于android - JNI_OnLoad 返回错误版本 (-1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25262603/