JNI java.lang.UnsatisfiedLinkError
错误1: java.lang.Unsatisfie.lang.UnsatisfiedLinkError no XXXXX in java.library.path
这个错误一般是找不到dll文件
执行下这个 可以看看 System.out.println(System.getProperty("java.library.path")); 其实就是我们设置的path 环境变量里的东西或者有其他系统的设置。(在windows cmd下 输入path 或者 set 都可以看)。看了这个以后你就知道这个dll或者so文件放哪里他是可以找到了,当然最简单的放这个java文件所在的目录了或者他上层目录,一般是和java src目录同层目录就好了,你看下java.library.path 中有个点号(.) 就表明是当前工作目录的意思,所以肯定在工程目录下有个位置。这个错误一般比较好解决。
错误2:java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()
这个错误是 在这个dll里找不到方法的声明,(搞了一下午害我差点装VC了,还借用到了dll查看工具)
网上说是@符号的问题 ,解决方法是用gcc 编译的时候指定参数
第1种方法:
gcc -Wl,--kill-at -shared -o jnihello.dll Native.c
这种方法生成不带@的函数声明
第2种方法:
gcc -Wl,--add-stdcall-alias -shared -o jnihello22.dll Native.c
这种方法会生成2个函数声明,一个是带@的 一个是不带@的。
第3种方法:
在你的本地方法的头文件中中的函数前面加上下划线,比如以前是
JNIEXPORT void JNICALL Java_TestNative_Hello (JNIEnv * , jobject );
现在改成
JNIEXPORT void JNICALL _Java_TestNative_Hello (JNIEnv * , jobject );
同时你的实现的cpp文件或者c文件里的函数头也要一致 前面有下划线。
如果你需要查看dll的导出函数声明可以用以下2个工具
1: dllexp
2:Anywhere PE Viewer
转载于:https://www.cnblogs.com/yefengmeander/archive/2012/11/13/2887967.html
JNI java.lang.UnsatisfiedLinkError相关推荐
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法 参考文章: (1)JNI调用native方法出现 ...
- java JNI调用C语言动态链接库(java.lang.UnsatisfiedLinkError: no yourClassName in java.library.path 异常的解决方法)
转自: http://watershitter.iteye.com/blog/477615 今天花了至少3个小时跑这个java调c的动态链接库的Hello,native world的程序. 把所有犯 ...
- Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误
最近公司项目需求接入即时通讯功能,现在第三方的即时通讯做的比较完善,接入也很方便.最近在调试语音的时候遇到了一个.so库加载失败的问题,在网上查看都是说由于原有项目的so库和新添加的model的so库 ...
- java.lang.UnsatisfiedLinkError:no jhdf5 in java.library.path问题的解决
笔者在MyEclipse中进行HDF文件的读写,遇到了java.lang.UnsatisfiedLinkError:no jhdf5 in java.library.path的问题.笔者详细地记录了整 ...
- java.lang.UnsatisfiedLinkError
java.lang.UnsatisfiedLinkError 原因:jni注册的时候匹配写错了: "(I[B)[B" 如下: static JNINativeMethod meth ...
- Android之运行Java.lang.UnsatisfiedLinkError的错误解决办法
1.问题 部分手机运行的时候在jni层出现这个错误,导致手机崩溃 Java.lang.UnsatisfiedLinkError 2.解决办法 是因为在我是这样写的 static {System.loa ...
- Android之java.lang.UnsatisfiedLinkError(Failed to register native method ***callMethod1())解决办法
1.问题 Failed to register native method com.example.chenyu.test.JniClient.callMethod1() java.lang.Unsa ...
- java.lang.UnsatisfiedLinkError: no XXX in java.library.path
其中涉及的测试源码如下: For those who didn't install Java with default settings, a systematic way for solving J ...
- Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils
最近一个项目中依赖: compile 'com.github.barteksc:android-pdf-viewer:2.7.0-beta.1',但是由于还使用了其他的SDK,当运行的时候就出现了这个 ...
最新文章
- What are some time-saving tips that every Linux us
- 时间序列预测——深度好文,ARIMA是最难用的(数据预处理过程不适合工业应用),线性回归模型简单适用,预测趋势很不错,xgboost的话,不太适合趋势预测,如果数据平稳也可以使用。...
- 【完结】12篇GAN的优化文章大盘点,浓浓的数学味儿
- NFS Volume Provider(Part II) - 每天5分钟玩转 OpenStack(63)
- 60岁有30万资金,如何存款最安全?
- linux文件内容打印成二进制,如何在二进制文件中只打印可打印字符(相当于Linux下的字符串)?...
- Node.js npm 详解
- 时间选择插件Foundation datepicker
- 2019.04.13 - 19:34
- uva 11396Claw Decomposotion(二分图判定)
- Ubuntu下pycharm无法输入中文
- linux安装Linux下软件的安装与卸载方法
- 基于PHP的新闻管理系统(基础版)
- 给计算机系统打补丁,为什么我的电脑需要打补丁?
- HIT CSAPP 大作业
- Hibernate 查询Criterion数据
- imToken 2.7.2,你的 Eth2「入场券」待领取
- 微分,变分,差分的确切定义与区别
- 数学题还是计算机题啊
- Android通讯录(联系人)-ContentProvider
热门文章
- element ui 点击修改开启停用按钮状态
- 流程图讲解_流程图小作文练习,详细讲解+精选范文!你们的魔鬼来了(一)...
- php 获取 参数名和参数值,如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)...
- matlab 释放变量,怎么能释放已经使用的内存
- 使用源码安装 PostgreSQL 12.5 主从集群
- Linux系统根据端口号查找项目路径
- php 建站要学,建站新手如何开始学习php?
- jsp框架html,GUI构建:[jsp风格的框架通常]对由模板生成的HTML代
- dongle 工具 蓝牙_CC2540 USB Dongle 蓝牙抓包分析仪使用教程
- c语言 字符型数据如何输入,scanf()函数如何输入字符型数据?