android开发---3.linux 下使用 javah生成头文件

本文介绍在Linux环境下使用javah命令生成JNI头文件的方法。通过具体步骤展示如何解决Java调用C代码时常见的错误,并提供正确配置路径及命令参数的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux 下使用 javah生成头文件

root@ubuntu:/works/sdk/android-ndk-r7/samples/hello-jni# tree
  1. ├── AndroidManifest.xml
  2. ├── assets
  3. ├── bin
  4. │ ├── AccelerometerPlayActivity.apk
  5. │ ├── classes
  6. │ │ ├── com
  7. │ │ │ └── example
  8. │ │ │ └── hellojni
  9. │ │ │ ├── HelloJni.class
  10. │ │ │ ├── R$attr.class
  11. │ │ │ ├── R.class
  12. │ │ │ └── R$string.class
  13. │ │ └── com_example_hellojni_HelloJni.h
  14. │ ├── classes.dex
  15. │ ├── res
  16. │ └── resources.ap_
  17. ├── jni
  18. ├── obj
  19. ├── project.properties
  20. ├── src
  21. │ └── com
  22. │ └── example
  23. │ └── hellojni
  24. │ └── HelloJni.java
  25. └── 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值