昨天我决定将我的游戏(我目前正在开发的游戏)导出到 Android。我使用 Monogame 进行开发,并使用 C# 包装器集成了 FMOD API(Core 和 Studio),该包装器附带从其网站下载的 FMOD 引擎。
在 DesktopGL 项目上一切正常。但不幸的是,在 Android 上我遇到了一些问题。没有音频,我查看了 Device Log 窗口,发现有一个名为 ERR_INTERNAL 的错误(这意味着我应该使用 FMOD 的日志记录版本,换句话说,没有 libfmod.so 而是 libfmodL.so )。所以我使用了 FMOD 的日志版本,在 ERR_INTERNAL 下我看到了这个:
[ERR] FMOD_JNI_GetEnv : JNI_OnLoad has not run, should have occurred during System.LoadLibrary.
我已经在 Reddit 上的 Monogame subreddit 上提出了问题,但没有回复。我想这里会有更多有一些将 FMOD 集成到 Android 的经验的人可以帮助我。我将不胜感激!
还有我如何设置FMOD的android集成,也许有什么问题?
所有.so 文件的构建操作设置为 Android 绑定项目中 fmod.jar 文件的 AndroidNativeLibrary 和 AndroidLibrary 设置。
问题是 - 我实际上没有加载库。对于也遇到此问题的人,有解决方案:
在初始化游戏之前,在
Activity1.cs 中的 OnCreate 方法(或在您的情况下调用的任何名称)中,您需要编写此代码
JavaSystem.LoadLibrary("fmodL");
JavaSystem.LoadLibrary("fmod");
JavaSystem.LoadLibrary("fmodstudioL");
JavaSystem.LoadLibrary("fmodstudio");