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つの方法は、ヘッダーファイルを自分で作成することですが、これは簡単なオプションではありません。ヘッダーは次のようになります(パッケージ名に文字を使用したため、前ndkに1があります。これを入力しないと、呼び出し元は、というフォルダー内で呼び出されるフォルダーを検索します。したがって、お勧めしません。パッケージ名としてtest_ndkを使用します。代わりに、testNdkまたはアンダースコア付きの何かを使用します):test_1ndk_ndktest

#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 に答える