4

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 などに変換されます。

4

1 に答える 1

-1

オブジェクトを返すのはどうですか:

private native Object fooNative(Object x);

次に、同じ署名を持つように変換します。

public Effect foo(Effect x) {
    return (Effect)fooNative(x);
}
于 2012-05-14T04:07:05.257 に答える