linux 下使用 javah生成头文件
root@ubuntu:/works/sdk/android-ndk-r7/samples/hello-jni# tree
当用 java 调用c代码时, c代码的函数名要符合一定的规则: 包名_类名_函数名
用javah 可以生成这样的头文件,以 android-ndk-r7/samples/hello-jni/ 为例,记录一下javah的使用方法,防止下次出现这个问题的时候还要google
出现了多次这个问题:
error: cannot access com.example.hellojni.HelloJni
class file for com.example.hellojni.HelloJn not found
javadoc: error - Class com.example.hellojni.HelloJn not found.
Error: No classes were specified on the command line. Try -help.
1. 首先hello-jni/src/com/example/hellojni/HelloJni.java 先用eclipse编译一下,生成HelloJni.class,eclipse编译完成之后,可在 hello-jni/bin/classes/com/example/hellojni/HelloJni.class 找到 HelloJni.class
2. 进入 hello-jin/bin 目录,使用
javah -classpath . -jni com.example.hellojni.HelloJni
其中:
-classpath 指定javah用来查找类的路径
-jni 使 javah 创建一输出文件
com.example.hellojni.HelloJni 这个应该是把路径中的/改为.了吧, java不熟
参考文章:http://www.cnblogs.com/charley_yang/archive/2011/03/13/1983038.html
root@ubuntu:/works/sdk/android-ndk-r7/samples/hello-jni# tree
- ├── AndroidManifest.xml
- ├── assets
- ├── bin
- │ ├── AccelerometerPlayActivity.apk
- │ ├── classes
- │ │ ├── com
- │ │ │ └── example
- │ │ │ └── hellojni
- │ │ │ ├── HelloJni.class
- │ │ │ ├── R$attr.class
- │ │ │ ├── R.class
- │ │ │ └── R$string.class
- │ │ └── com_example_hellojni_HelloJni.h
- │ ├── classes.dex
- │ ├── res
- │ └── resources.ap_
- ├── jni
- ├── obj
- ├── project.properties
- ├── src
- │ └── com
- │ └── example
- │ └── hellojni
- │ └── HelloJni.java
- └── tests
当用 java 调用c代码时, c代码的函数名要符合一定的规则: 包名_类名_函数名
用javah 可以生成这样的头文件,以 android-ndk-r7/samples/hello-jni/ 为例,记录一下javah的使用方法,防止下次出现这个问题的时候还要google
出现了多次这个问题:
error: cannot access com.example.hellojni.HelloJni
class file for com.example.hellojni.HelloJn not found
javadoc: error - Class com.example.hellojni.HelloJn not found.
Error: No classes were specified on the command line. Try -help.
1. 首先hello-jni/src/com/example/hellojni/HelloJni.java 先用eclipse编译一下,生成HelloJni.class,eclipse编译完成之后,可在 hello-jni/bin/classes/com/example/hellojni/HelloJni.class 找到 HelloJni.class
2. 进入 hello-jin/bin 目录,使用
javah -classpath . -jni com.example.hellojni.HelloJni
其中:
-classpath 指定javah用来查找类的路径
-jni 使 javah 创建一输出文件
com.example.hellojni.HelloJni 这个应该是把路径中的/改为.了吧, java不熟
参考文章:http://www.cnblogs.com/charley_yang/archive/2011/03/13/1983038.html