我想知道是否有办法在jni文件夹中生成.h文件比这样的命令更容易
javah -jni -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib
我的意思是我想自动完成这一步,所以我只需要写
public native static long fibNR(long n);
然后eclipse将为我生成jni文件夹中的.h文件
我该怎么做?
答案 0 :(得分:4)
选项1:
如果它有所不同,则不必包含-jni
选项。这是javah
的默认选项。
javah -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib
选项2:
另一种选择是自己创建头文件,但这不是一个更容易的选择。你的标题看起来像这样(在ndk
test_1ndk
之前有一个1,因为你在包名中使用了_
字符。如果我们不放它,调用者会寻找在名为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);