快速生成头文件
1.将控制台切换到 …/main/java 目录下,如图所示:
2.获取包含native方法的类的全类名,并执行如下命令
以CallJavaController类为例
javah com.example.jnidemo.CallJavaController
3.将生成 .h文件放置到 jni目录中,与 .c文件同级目录,并在.c文件中引入
#include "com_example_jnidemo_CallJavaController.h"
查看Java类中方法的签名
- 将当前代码进行编译
- 找到要查看的类的字节码文件(.class文件),并将控制台切换到该目录下
- 执行命令
javap -s 字节码文件名(无需后缀)
- 查看控制台,输出该类的全部方法的方法签名
字节码文件位置示例: F:\jniDemo\app\build\intermediates\javac\debug\classes\com\example\jnidemo\A.class
在C文件中打印日志
1.在对应的moudle的build.gralde中添加如下:
2.在CMakeList.txt中添加配置
3.在对应的C文件中导入log库,并为打印方法设置别名
#include <android/log.h>
#define LOG_TAG "TAG_JNI"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
4.使用
LOGD("value= %s","测试");