JNI_OnLoad返回坏版本(-1)

时间:2014-08-12 11:00:45

标签: android android-ndk java-native-interface qt5 unsatisfiedlinkerror

我正在尝试在我的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”是包含多个库名的数组。其他库正确加载..

欢迎任何想法!


修改

所以我先得到这个:

  

D / dalvikvm(11445):尝试加载lib   /data/app-lib/com.xxx.yyy/libQt5Core.so 0x42666fd8
  D / dalvikvm(11445):添加了共享库   /data/app-lib/com.xxx.yyy/libQt5Core.so 0x42666fd8

     

E / LibrariesLoader(11445):由于链接而无法加载库:Qt5Core   错误JNI_ERR从JNI_OnLoad返回   “/data/app-lib/com.xxx.yyy/libQt5Core.so”

     

E / LibrariesLoader(11445):java.lang.UnsatisfiedLinkError:JNI_ERR   从“/data/app-lib/com.xxx.yyy/libQt5Core.so”中的JNI_OnLoad返回

...然后有另一个加载的库没有任何错误/警告。该库具有Qt5Core.so作为依赖。

我已经调查过,因为以下代码,我得到了这个JNI_ERR:

  

if(vm-> GetEnv(& uenv.venv,JNI_VERSION_1_6)!= JNI_OK)
          返回JNI_ERR;

我正在使用的JNI版本是1.6 !!!!

1 个答案:

答案 0 :(得分:6)

QtCore的JNI_OnLoad加载一项名为" QtNative"它何时启动并返回JNI_ERR(如果未找到)。

QtNative在" QtAndroid-bundled.jar"中定义。您可以在QT 5.3 SDK文件夹中找到它:     的 QT5 / 5.3 / android_armv7 /罐/ QtAndroid-bundled.jar

只需将此添加到您的项目" libs"文件夹中。