我正在开发一个安卓应用,其中使用了JNI来编写本地C代码。我在安卓2.0版本和ndkr3上构建了这个应用,并且它运行良好。
现在,当我将安卓SDK版本更改为1.5和API版本更改为3时,我遇到了无法打开libtest_demo.so库的问题。
05-13 16:54:23.603: INFO/dalvikvm(1211): Unable to dlopen(/data/data/org.abc.test_demo/lib/libtest_demo.so): Cannot find library
我将libtest_demo.so文件放在相同位置/data/data/org.abc.test_demo/lib/libtest_demo.so,但是仍然出现相同的问题。
在我的java文件中,我调用本地库的方式如下:
System.loadLibrary("abc_jni");
System.loadLibrary("test_demo");
从logcat中我看到两个库使用了相同的内存地址。
这是logcat输出:
05-13 17:56:15.732: DEBUG/dalvikvm(9897): Trying to load lib /data/data/org.abc.test_demo/lib/libabc_jni.so 0x437317f8
05-13 17:56:15.732: DEBUG/dalvikvm(9897): Added shared lib /data/data/org.abc.test_demo/lib/libabc_jni.so 0x437317f8
05-13 17:56:15.742: DEBUG/dalvikvm(9897): Trying to load lib /data/data/org.abc.test_demo/lib/libtest_demo.so 0x437317f8
05-13 17:56:15.752: INFO/dalvikvm(9897): Unable to dlopen(/data/data/org.abc.test_demo/lib/libtest_demo.so): Cannot find library