Had*_*ama 7 android android-ndk
我成功地使用android ndk-Standalone工具链交叉编译了一个c ++库,然后我在Eclipse中创建了一个新的android应用程序项目,当我将mylib.so放入jni文件夹并执行ndk-build命令时,它工作正常
Prebuilt : mylib.so <= jni/
Install : mylib.so => libs/armeabi/mylib.so
Run Code Online (Sandbox Code Playgroud)
但是在添加时
static{
System.load("/data/data/my_package/lib/mylib.so");
}
Run Code Online (Sandbox Code Playgroud)
我在logcat中说错了
AndroidRuntime
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:
reloc_library[1306]: 36 cannot locate 'xmlCleanupParser'...``
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索它,但没有找到任何方法来解决这个问题.
我最近遇到了同样的错误.在尝试了SO的几十条建议后,我终于发现错误出现在我的原生代码中.即使android ndk编译它没有任何问题/警告.
尝试编写一个简单的main函数来测试您的本机代码,并使用g ++/gcc(或类似的东西)进行编译以检查错误.
我知道提问者为时已晚,但希望其他人认为这有用.
如果您的 -directory 中有已编译的本机库(.so文件)lib/,则可以在不使用完整路径的情况下引用它:
static{
System.load("mylib");
}
Run Code Online (Sandbox Code Playgroud)
如教程所示。
检查您是否在头文件中设置了正确的包:How toresolve the java.lang.UnsatisfiedLinkError in NDK in Android?
| 归档时间: |
|
| 查看次数: |
26303 次 |
| 最近记录: |