我尝试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下的项目路径中的,但是出现的错误依旧和上面的相同
使用
#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文件,瞭解如何配置編譯安卓平臺。