java中引用System.loadLibrary的疑问

yhuaqiang 2011-10-22 01:52:42
别人的工程中可能要引用某个dll,但是他没有提供,用这句代码引用
static { System.loadLibrary("plasma"); }
可是他的能够正常运行,我的却不行,这是为什么呢?
我电脑上也没有这个库,那他的是如何找到这个库呢?
...全文
872 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinhaize 2011-12-16
  • 打赏
  • 举报
回复
哦,我已经解决了,分享一下

1.在linux中的out目录下的\system\lib\目录下找到相应的库。例如:libSkypeReferenceApp.so
或者自己使用ndk写c/c++,和jni生成so库。
2.在android根目录下创建目录libs/armeabi,将so库拷入此目录 下。
3.java中调用:
static {
System.loadLibrary("SkypeReferenceApp");
}
进行加载库。
4.即可调用其中的本地方法了。
jinhaize 2011-12-16
  • 打赏
  • 举报
回复
楼主,你是如何解决的,步骤能告诉我吗?我也遇到这样的问题了。

我在linux下编译挺好的,然后放在eclipse中编译就找不到那库。
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load SkypeReferenceApp: findLibrary returned null
E/AndroidRuntime( 1516): at java.lang.Runtime.loadLibrary(Runtime.java:429)
E/AndroidRuntime( 1516): at java.lang.System.loadLibrary(System.java:554)

在system/lib中有个名字类似的so文件,我要怎么做才能让他找到呢?
qianghuay 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qianghuay 的回复:]

要看它的so库中的类编译时所在的包,要在自己的工程中建立同样的包才可以使用
[/Quote]谢谢 解决了
qianghuay 2011-10-24
  • 打赏
  • 举报
回复
要看它的so库中的类编译时所在的包,要在自己的工程中建立同样的包才可以使用
J明 2011-10-22
  • 打赏
  • 举报
回复
请贴出错误提示,和一部分代码,这样比较好解决问题。
yhuaqiang 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nickfang 的回复:]

没有plasma这个dll。
要将它放在应用程序目录中
[/Quote]
但是他的工程里也没有这个库啊。却可以 运行
J明 2011-10-22
  • 打赏
  • 举报
回复
没有plasma这个dll。
要将它放在应用程序目录中

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧