在jni文件夹android中生成文件的最简单方法

时间:2013-03-04 11:44:21

标签: android c++ android-ndk java-native-interface javah

我想知道是否有办法在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 个答案:

答案 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);