首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.loadLibrary()错误

System.loadLibrary()错误
EN

Stack Overflow用户
提问于 2013-03-04 23:00:48
回答 5查看 27.9K关注 0票数 7

我成功地使用android ndk-Standalone工具链交叉编译了一个c++库,然后在Eclipse中创建了一个新的android应用程序项目,当我将mylib.so放入jni文件夹并执行ndk-build命令时,它工作得很好

代码语言:javascript
复制
Prebuilt       : mylib.so <= jni/
Install        : mylib.so => libs/armeabi/mylib.so

但在添加

代码语言:javascript
复制
static{
  System.load("/data/data/my_package/lib/mylib.so");
}

我在logcat中发现了一个错误

代码语言:javascript
复制
   AndroidRuntime
   Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:
   reloc_library[1306]:      36 cannot locate 'xmlCleanupParser'...``

我用谷歌搜索了一下,但没有找到任何解决这个问题的方法。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-10-15 18:52:50

我最近遇到了同样的错误。在尝试了许多来自SO的建议后,我最终发现错误存在于我的本机代码中。,尽管android ndk已经编译了它,但没有任何问题/警告。

尝试编写一个简单的main函数来测试您的本机代码,并使用g++/gcc (或类似的工具)进行编译以检查错误。

我知道对于提问者来说为时已晚,但希望其他人能发现这一点。

票数 6
EN

Stack Overflow用户

发布于 2013-09-28 16:00:46

人们大多忘记了从库名称中剪切"lib“前缀。所以如果你有"libusb.so“,你的代码必须是System.loadLibrary("usb")...

票数 11
EN

Stack Overflow用户

发布于 2013-03-04 23:16:22

如果您的lib/-directory中有已编译的本机库( .so-file),则可以在不使用完整路径的情况下引用它:

代码语言:javascript
复制
static{
  System.load("mylib");
}

tutorial所示。

检查是否在头文件中设置了正确的包:How to resolve the java.lang.UnsatisfiedLinkError in NDK in Android?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15204492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档