Android JNI编译问题汇总

本文介绍如何正确使用javah命令生成JNI桥接所需的.h文件,并针对包含非Java代码的特殊情况提供解决方案。

1. javah 命令生成 .h文件生成问题.

正确的使用方法是: 使用IDE正确编译后到.\bin目录下去.

使用javah -classpath . -jni 包名.类名 

例如javah -classpath . -jni com.test.testjni.TestJNI

其中bin目录下面应该是com文件夹的根目录.

特殊情况: 如果该类名使用了除Java以外的代码如Activiy类.该命令会出现Class Not found如下所示:

错误: 无法访问android.app.Activity
  找不到android.app.Activity的类文件

原因是编译时, Classpath没有包括Android的Class文件目录.  解决方法是:

然后就进去sdk里面Platform的 Android-16目录下,把android.jar复制,改名为android.rar,然后解压为一个名叫android的文件夹,删掉android.rar,进去android文件夹,把目录复制,到classpath里面加上去,ok了


最终成功代码如下:javah -classpath D:\android-sdk\platforms\android-16\;.  -jni com.xxxx.xxxx.android.plugin.natives.simi.utils.AQConfig


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值