2011.11.22——— android jni简单用法
参考:[url]http://www.eoeandroid.com/thread-114412-1-1.html[/url]
[url]http://www.androidzz.com/2011/08/android-jni/[/url]
[url]http://my.unix-center.net/~Simon_fu/?p=833[/url]
[url]http://topic.youkuaiyun.com/u/20110711/09/7b2bb12b-be4b-4eed-b995-7c0b6d2ea068.html[/url]
首先 先说一下 我遇到的问题
1、System.loadLibrary的参数
沿袭Linux传统,lib<something>.so是类库文件名称的格式,但在Java的System.loadLibrary(“ something ”)方法中指定库名称时,不能包括 前缀—— lib,以及后缀——.so
比如说 你的so文件名字为libhello.so
这时 你应该写
2、javah命令问题
刚开始 我是这样的
我是指向了java文件 就报错 如下
然后 我指向class文件
错误依然
后来 查了 说不能直接指向文件 而应该知道bin根目录 带包命运行
错误仍然存在
咳,然后 需要加上-classpath参数 才可以
如下
这下 终于大功告成了 呵呵
参考:[url]http://www.eoeandroid.com/thread-114412-1-1.html[/url]
[url]http://www.androidzz.com/2011/08/android-jni/[/url]
[url]http://my.unix-center.net/~Simon_fu/?p=833[/url]
[url]http://topic.youkuaiyun.com/u/20110711/09/7b2bb12b-be4b-4eed-b995-7c0b6d2ea068.html[/url]
首先 先说一下 我遇到的问题
1、System.loadLibrary的参数
沿袭Linux传统,lib<something>.so是类库文件名称的格式,但在Java的System.loadLibrary(“ something ”)方法中指定库名称时,不能包括 前缀—— lib,以及后缀——.so
比如说 你的so文件名字为libhello.so
这时 你应该写
System.loadLibrary(hello);
2、javah命令问题
刚开始 我是这样的
C:\Program Files\Java\jdk1.6.0_20\bin>javah E:\workspace\TestJNI\src\com\lp\jni\
FirstJNI
我是指向了java文件 就报错 如下
javadoc: 错误 - 非法的软件包名称:"E:\workspace\TestJNI\src\com\lp\jni\FirstJNI"
然后 我指向class文件
C:\Program Files\Java\jdk1.6.0_20\bin>javah E:\workspace\TestJNI\bin\classes\com
\lp\jni\FirstJNI
错误依然
javadoc: 错误 - 非法的软件包名称:"E:\workspace\TestJNI\bin\classes\com\lp\jni\F
irstJNI"
后来 查了 说不能直接指向文件 而应该知道bin根目录 带包命运行
C:\Program Files\Java\jdk1.6.0_20\bin>javah E:\workspace\TestJNI\bin\classes\ co
m.lp.jni.FirstJNI
错误仍然存在
javadoc: 错误 - 非法的软件包名称:"E:\workspace\TestJNI\bin\classes\"
咳,然后 需要加上-classpath参数 才可以
如下
C:\Program Files\Java\jdk1.6.0_20\bin>javah -classpath E:\workspace\TestJNI\bin\
classes\ com.lp.jni.FirstJNI
这下 终于大功告成了 呵呵