[英]Android NDK - Include a c++ header in a different header?
我有一个Ability.h
文件,它是依赖于Effect.h
文件。
我需要使用javah生成头,但是我无法在Ability.java
类中定义效果依赖关系 ,我Ability.java
从该依赖关系生成c ++头。
例:
public class Ability {
static {
System.loadLibrary("com_test_Effect");
System.loadLibrary("com_test_Ability");
}
public native Effect foo(Effect x);
}
此代码生成一个没有 foo()
函数的* .h文件,好像无法识别它。 如果我将返回类型交换为int且不包含com_test_Effect,它将生成适当的文件。
我确实在Android.mk文件中定义了两个模块(com_test_Effect和com_test_Ability)。
如何直接包括另一C ++文件中的Xyz.java
从中类*.h
由JAVAH产生?
编辑:也可以这样询问问题:是否有一种方法可以传递C ++类型的参数或从作为C ++与Java之间接口的函数返回C ++类型的值? (接口介质为JNI。)例如,您可以使用基本类型(例如int)进行转换,然后将其转换为jint等。
如何返回一个对象:
private native Object fooNative(Object x);
然后对其进行转换,使其具有相同的签名:
public Effect foo(Effect x) {
return (Effect)fooNative(x);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.