我想知道是否有一种方法可以比这样的命令更容易地在 jni 文件夹中生成 .h 文件
javah -jni -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib
我的意思是我想自动化这一步,所以我只需要写
public native static long fibNR(long n);
然后eclipse会为我生成jni文件夹中的.h文件
我怎样才能做到这一点 ?
我想知道是否有一种方法可以比这样的命令更容易地在 jni 文件夹中生成 .h 文件
javah -jni -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib
我的意思是我想自动化这一步,所以我只需要写
public native static long fibNR(long n);
然后eclipse会为我生成jni文件夹中的.h文件
我怎样才能做到这一点 ?
选项1:
如果它有所作为,则不必包含该-jni
选项。这是 的默认选项javah
。
javah -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib
选项 2:
另一种选择是自己创建头文件,但这不是一个更容易的选择。您的标头看起来像这样(前面有一个 1 ndk
,test_1ndk
因为您_
在包名称中使用了一个字符。如果我们不放它,调用者将在名为 的文件夹中查找一个名为ndk
的文件夹test
,因此,我不推荐使用 test_ndk 作为你的包名。而是使用 testNdk 或带有下划线的东西):
#include <jni.h>
JNIEXPORT jlong JNICALL Java_com_example_test_1ndk_FibLib(JNIEnv*, jclass, jlong);
// use jobject instead of jclass if your method is non-static
一般格式是:
JNIEXPORT [returnType] JNICALL Java_[package name with folders separated by _]_[class name]_[method name] (JNIEnv*, jclass, jtype arguments);