Android NDK开发,使用ndk-build编译

javah -classpath D:\Demo\NDKDemo\app\src\main\java -d D:\Demo\NDKDemo\app\src\main\jni com.ang.ndkdemo.MainActivity

补充:可以通过 - o 指定生成的头文件名称,如果不指定,默认以类全路径名生成(包名 + 类名. h)

javah -classpath E:\Demo\JNIDemo\app\src\main\java -o E:\Demo\JNIDemo\app\src\main\java\jni\JNITest.h com.ang.MainActivity

2,执行以上命令之后:就在项目的 main 文件夹下创建了 jni 文件夹,并且在 jni 文件夹下自动创建了. h 头文件;头文件名也是自动生成的,命名规则是 com_ang_ndkdemo_MainActivity.h(包名 + 类名. h)

3,自动生成的 com_ang_ndkdemo_MainActivity.h 头文件代码

/* DO NOT EDIT THIS FILE - it is machine generated /
#include <jni.h>
/
Header for class com_ang_ndkdemo_MainActivity */

#ifndef _Included_com_ang_ndkdemo_MainActivity
#define _Included_com_ang_ndkdemo_MainActivity
#ifdef __cplusplus
extern “C” {
#endif
/*

  • Class: com_ang_ndkdemo_MainActivity
  • Method: fromJNIString
  • Signature: ()Ljava/lang/String;
    */
    JNIEXPORT jstring JNICALL Java_com_ang_ndkdemo_MainActivity_fromJNIString
    (JNIEnv *, jobject);

/JNIEnv 是定义任意native函数的第一个参数(包括调用JNI的RegisterNatives函数注册的函数),指向JVM函数表的指针,函数表中的每一个入口指向一个JNI函数,每个函数用于访问JVM中特定的数据结构。*/

#ifdef __cplusplus
}
#endif
#endif

4,生成. h 头文件时候,如果出现 “找不到类文件” 的错误请参考  blog.youkuaiyun.com/ezconn/arti… 这篇文章

注意:

a. 包名或类名或方法名中含下划线 _ 要用 _1 连接;

b. 重载的本地方法命名要用双下划线 __ 连接;

c. 参数签名的斜杠 “/” 改为下划线 “_” 连接,分号 “;” 改为 “_2” 连接,左方括号 “[”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值