3

我想知道是否有一种方法可以比这样的命令更容易地在 jni 文件夹中生成 .h 文件

javah -jni -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib

我的意思是我想自动化这一步,所以我只需要写

public native static long fibNR(long n);

然后eclipse会为我生成jni文件夹中的.h文件

我怎样才能做到这一点 ?

4

1 回答 1

4

选项1:

如果它有所作为,则不必包含该-jni选项。这是 的默认选项javah

javah -classpath bin/classes/ -d jni/ com.example.test_ndk.FibLib

选项 2:

另一种选择是自己创建头文件,但这不是一个更容易的选择。您的标头看起来像这样(前面有一个 1 ndktest_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);
于 2013-03-08T12:06:58.290 回答