Thank you for the additional information. This still appears to be due to an issue with initialization order. As a workaround, you can try moving the call to RuntimeUtils.EnforceLibraryOrder()
inside RuntimeManager.cs RuntimeManager.Instance.get
to be at the top of the try/catch block, ie
try
{
RuntimeUtils.EnforceLibraryOrder(); // move to here
#if UNITY_ANDROID && !UNITY_EDITOR
// First, obtain the current activity context
AndroidJavaObject activity = null;
using (var activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
activity = activityClass.GetStatic<AndroidJavaObject>("currentActivity");
}
using (var fmodJava = new AndroidJavaClass("org.fmod.FMOD"))
{
if (fmodJava != null)
{
fmodJava.CallStatic("init", activity);
}
else
{
RuntimeUtils.DebugLogWarning("[FMOD] Cannot initialize Java wrapper");
}
}
#endif
//RuntimeUtils.EnforceLibraryOrder(); // remove from here
initResult = instance.Initialize();
}
Please let me know if that works around the issue.