Android Studio 配置一键生成 JNI 头文件工具

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/afei__/article/details/87998625

一、前言

我们知道进行 NDK 开发中,native 方法大多是需要进行静态注册的,如果手动一个个写,不仅容易出错,而且繁琐和浪费时间。那么有什么好用的工具可以使用呢?

这个其实是有的,就在我们的JDK中就有一个 javah.exe 工具帮助我们生成 JNI 的头文件,我们只需要将其配置到 Android Studio 中就可以很方便的使用它了。

二、效果示例

如下,com_afei_openglsample_NativeRenderer.h 就是一个自动生成的头文件了,可以省去我们很多工夫,那么该怎么配置呢?
在这里插入图片描述

三、配置

在 Settings -> Tools -> External Tools,点击加号添加一个工具。填写信息如下:
在这里插入图片描述
其中 Name、Group、Description 根据自己喜好填写就行。值得注意的是如下几点:

1. Program

一般我们都有配置好 JDK 的环境变量,这里直接填写 javah 即可。

2. Argument

关于 javah 的参数说明如下:

用法:
  javah [options] <classes>
其中, [options] 包括:
  -o <file>                输出文件 (只能使用 -d 或 -o 之一)
  -d <dir>                 输出目录
  -v  -verbose             启用详细输出
  -h  --help  -?           输出此消息
  -version                 输出版本信息
  -jni                     生成 JNI 样式的标头文件 (默认值)
  -force                   始终写入输出文件
  -classpath <path>        从中加载类的路径
  -cp <path>               从中加载类的路径
  -bootclasspath <path>    从中加载引导类的路径
<classes> 是使用其全限定名称指定的
(例如, java.lang.Object)

我使用的参数配置是:-cp $Classpath$ -d $ModuleFileDir$\src\main\cpp\inc $FileClass$

其中

-cp <path> 是为了解决 Android 中一些类找不到的问题,例如 Bitmap 等。不添加的话就会有 “无法确定Bitmap签名” 这样的报错了。

-d <dir> 这个你填写你需要 输出的文件夹路径 即可。

3. Working directory

这个填写 $SourcepathEntry$ 即可,表示你的源代码路径。

四、使用

选中你要使用的类,右键使用你配置好的工具即可,如下图:
在这里插入图片描述

以上,你就可以很轻松的一键完成 JNI 头文件生成了。

猜你喜欢

转载自blog.csdn.net/afei__/article/details/87998625