创建C++类后include AndroidJNI.h失败

我尝试https://blog.csdn.net/RhyGame/article/details/79842943中的做法来学习UE4 JNI
但是我在build.cs中引入了Launch后,在我自己创建的C++类中无法include接下来的两个头文件
#include “Runtime/Launch/Public/Android/AndroidJNI.h”
#include “Runtime/ApplicationCore/Public/Android/AndroidApplication.h”
项目无法通过编译且报错指向AndroidJNI中的第七行
我想知道该如何使用UE4中的JNI

Hi ,

  • 请检查你的test_JNL.h所在的目录,是public还是private,你可以直接把Launch模块放在PublicDependency List中。
  • AndroidApplication.h在新版本中已经改变了路径,请确定路径正确。

对不起我刚刚开始接触UE4JNI,我尝试将Launch放在最外面的PublicDependency中,确认了AndroidApplication.h并没有更换,我的test_JNL.h并没有放置在任何文件夹中,是放置在source下的项目路径中的,但是出现的错误依旧和上面的相同

260736-qq截图20181128163042.png

我尝试按你说的进行了修改,这个关于宏的问题依旧存在

使用
#if PLATFORM_ANDROID
#include “Android/AndroidApplication.h”
#endif
应该就可以了,你用的是源码版还是登录器下载版的引擎?

另外如果你需要AndroidCamera的话,目前引擎提供了一个现成的插件,你可以在插件-》Media中 找到。

使用的是登录器下载版的引擎,我尝试了在我同事的环境下走同样的流程也没有成功,出现了同样的错误在映入AndroidJNI.h时找不到源文件,这只是我自己实现JNI的小尝试,但是到现在还没成功,始终卡在#include “Runtime/Launch/Public/Android/AndroidJNI.h”
#include "Runtime/ApplicationCore/Public/Android/AndroidApplication.h"这里

我去确认了一下应该就是谷歌版的UE4在登录器下载的

你可以用#if PLATFORM_ANDROID宏處理下,我測試過可以。
如果是需要這個功能,虛幻已經提供了這個功能的插件,你可以直接使用。不需要自己來寫。
如果是學習目的,你可以查看Engine\Source\Programs\UnrealBuildTool\Platform\Android\UEBuildAndroid.cs文件,瞭解如何配置編譯安卓平臺。