首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android NDK java.lang.UnsatisfiedLinkError: findLibrary返回空

Android NDK java.lang.UnsatisfiedLinkError: findLibrary返回空
EN

Stack Overflow用户
提问于 2012-01-28 02:08:17
回答 17查看 56.6K关注 0票数 52

在你的Android JNI应用程序中出现了上述错误?继续往下读。

首先,我会说我已经用我自己的方式解决了这个问题,但是我感觉Android构建系统中的一些东西(可能是关于Eclipse)出了问题,我希望能省去别人几个小时的痛苦。也许其他人已经遇到了这个问题,并可以评论什么对他们有效。

有一段时间,我有一个Android项目,其中包含一些我使用NDK开发的JNI代码。然后,今天,我在java代码中修改了一些东西,然后突然,我不能再加载我的JNI库了。它失败了,异常如下:

E/AndroidRuntime( 999):java.lang.UnsatisfiedLinkError:无法加载mylibrary: findLibrary返回null

我搜索并尝试了所有方法(重新构建、关闭和重新启动Eclipse等)

是什么最终解决了我的问题?在尝试再次运行之前,我从设备上物理卸载了我的应用程序。就这样。在那之后,它起作用了。什么对你有效?

EN

回答 17

Stack Overflow用户

发布于 2013-12-28 16:04:38

如果您有一个带有LOCAL_MODULE "libXYZ“的本机项目,请确保将其加载为

代码语言:javascript
复制
System.loadLibrary("XYZ");
票数 15
EN

Stack Overflow用户

发布于 2013-08-01 01:00:40

如果您尝试在模拟器中运行您的应用程序,请确保您已在run -> Run Configurations -> Target中指定了正确的体系结构(您可能需要使用Window -> Android虚拟设备管理器添加所需的模拟器)。

我在英特尔模拟器中尝试执行应用程序时遇到了同样的问题,而该应用程序使用的是为ARM预编译的库。

票数 13
EN

Stack Overflow用户

发布于 2013-05-31 21:55:24

我也有这个问题,但对于我的情况,我在另一个项目中使用我的库。我不认为这是eclipse或android-ndk的问题。

你可以检查这些提示,这些提示可以导致UnsatisfiedLinkError,它对我来说很好,祝你好运:)

JNI

  • 必须遵循JNI接口的命名规则(您说过您之前确实成功地加载了库,所以您可以忽略这一点),并且库必须位于目录/your project/libs/armeabi/

  • if中。如果您确保完成了上述操作,那么您必须确保您生成的库已安装到您的app.apk中,否则它仍然无法找到该库并向您发送错误。为此,右键单击您的eclipse项目名称,然后进入Build Path - Configure Build Path,在左侧菜单上选择Java Build Path,然后单击右侧面板上的Order Export选项卡,并选中您的库名<代码>E217前面的复选框,然后单击OK,然后清除、重新构建并运行您的项目,您的库将安装到app.apk中,一切都完成了。

编辑:

  1. 简而言之,如果库没有安装到您的
  2. 中,则会抛出UnsatisfiedLinkError,因此无法将其链接到app.apk中
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9037966

复制
相关文章

相似问题

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