参考GoogleVRHMD的编写:
1.Java 调用CPP的函数大概是都是这个样子:
extern "C" void Java_com_epicgames_ue4_GameActivity_native**********(JNIEnv* jenv, jobject thiz)
{
}
前面是Java对应函数声明的位置。
在xml也要定义一下:
public native void nativeOnUiLayerBack();
2.CPP调用Java一般大概是这样:
void AndroidThunkCpp_UiLayer_SetEnabled(bool bEnable)
{
if (JNIEnv* Env = FAndroidApplication::GetJavaEnv())
{
static jmethodID UiLayerMethod = FJavaWrapper::FindMethod(Env, FJavaWrapper::GameActivityClassID, "AndroidThunkJava_UiLayer_SetEnabled", "(Z)V", false);
FJavaWrapper::CallVoidMethod(Env, FJavaWrapper::GameActivityThis, UiLayerMethod, bEnable);
}
}
3.虚幻有一个xml文件比较有意思:
GoogleVRHMD_APL.xml
大概是这个意思,虚幻打包安卓钱,先遍历一遍这个xml文件,把所有的xml文件里面的标注g