Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2150455
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: Android平台

2012-03-05 17:06:23

1. 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

阅读(3603) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~