我有一个Ability.h
依赖于文件的Effect.h
文件。
我需要使用javah来生成我的头文件,但是我无法在我的Ability.java
类中定义一个 Effect 依赖项,我希望从中生成 c++ 头文件。
例子:
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
编辑:这个问题也可以这样问:有没有办法传递 C++ 类型的参数或从作为 C++ 和 Java 之间接口的函数返回 C++ 类型的值?(接口媒介是 JNI。)例如,您可以使用 int 等基本类型,然后将其转换为 jint 等。