Ability.h
ファイルに依存するファイルがありますEffect.h
。
javahを使用してヘッダーを生成する必要がありますが、C++ ヘッダーを生成するクラスでEffect 依存関係を定義できません。Ability.java
例:
public class Ability {
static {
System.loadLibrary("com_test_Effect");
System.loadLibrary("com_test_Ability");
}
public native Effect foo(Effect x);
}
このコードは、関数を認識できないかのように、関数のない*.h ファイルを生成します。foo()
戻り値の型を int に交換し、com_test_Effect を含めない場合、適切なファイルが生成されます。
Android.mk ファイル (com_test_Effect と com_test_Ability) で定義された両方のモジュールがあります。
javahによって生成されたXyz.java
クラスに別の c++ ファイルを直接含める方法は? *.h
編集: 質問は次のように尋ねることもできます: Is there a way to pass C++-type arguments or return a C++-type value from a function that is a interface between C++ and Java ? (インターフェイス メディアは JNI です。) たとえば、int などの基本的な型を使用してこれを行うことができ、その後、jint などに変換されます。