码迷,mamicode.com
首页 > 编程语言 > 详细

【JNI编程】使用javah命令生成头文件报错的解决方案

时间:2014-06-08 02:56:09      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:jni   异常   ndk   native   c   

异常信息:

提示找不到某个类(要进行编译的类)


产生异常的开发环境:

jdk7.0


ndk版本:

android-ndk-r7b


解决方案:

在环境变量classpath中添加android.jar这个文件的目录

如:E:\eclipse\android-sdks\platforms\android-8\android.jar


问题描述:

刚开始研究JNI,然后让这个问题折腾了一上午,使用javah来生成java的class文件没问题,但是生成包含android特有的类库的class文件就出错,说是找不到某个类(我的是找不到Activity这个类),然后配置好环境变量之后,问题解决。之前的JNI开发,不需要配置这个环境变量,应该是新版本才出现的问题。


javah命令简单介绍

F:\workspace\Jni\bin\classes>javah com.example.jni.MainActivity

javah命令主要用于jni编程中,生成本地类方法的头文件

在上面的语句中,我们定位到classes文件夹,这个文件夹用于存放编译好的class文件,然后我们把输入<package>+类名就可以生成相应类的native方法的头文件声明。要注意的是,这样生成的.h文件是和classes文件夹的子目录下。


我们在进行JNI编程的时候,一般在项目的根目录下面建立一个jni的文件夹,用于存放我们的c文件,h文件以及mk文件,那么如果我们想生成的h文件直接在jni文件夹下面,应该怎么操作呢?

我们使用下面的命令即可

F:\workspace\Jni\bin\classes>javah -d ../../jni com.example.jni.MainActivity


和第一条指令相比,多了-d ../../jni,-d的意思是创建一个文件夹,而../../jni的意思就是在当前目录的父目录的父目录下面创建一个jni文件夹,而classes的父目录的父目录就是项目的根目录,所以这样就可以直接在我们的jni文件夹下面生成我们需要的h文件

bubuko.com,布布扣






【JNI编程】使用javah命令生成头文件报错的解决方案,布布扣,bubuko.com

【JNI编程】使用javah命令生成头文件报错的解决方案

标签:jni   异常   ndk   native   c   

原文地址:http://blog.csdn.net/zhaokaiqiang1992/article/details/29182249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!