Abstract method mismatch in PlatformPs5 and XboxOne

Hi guys,
There is a mismatch for PlatformXboxOne and PlatformPs5 in abstract method overriden from Platform class

protected abstract IEnumerable<string> GetRelativeBinaryPaths(BuildTarget buildTarget, bool allVariants, string suffix);

both Ps5 and XboxOne implements this method with different overload,

protected override IEnumerable<string> GetRelativeBinaryPaths (BuildTarget buildTarget, string suffix)

missing bool parameter.
Im using 2.01.11 version and GameCore addon/plugin and Unity 2021.3.5f1

EDIT:
Also when implemented bool parameter there is error that RuntimeUtils.SetThreadAffiniti does not exist despite being called in PlatformXboxOne
PS2: Also this is not intended behaviour when building for game core xbox series xbox one platform is selected in fmod ¯_(ツ)_/¯

EDIT2:
Deleted xboxone and ps5 platform from fmod platforms and now unity shouts at me that

Error building Player: BuildFailedException: No FMOD platform found for build target GameCoreScarlett.

though i have imported gamecore package

Hi,

What GDK/SDK version of the 2.01.11 Game Core and 2.01.11 PS5 package are you using?

Hi Louis,

Im using fmodstudio20111gamecore_gdk220604 package.

Unity on startup is telling me that:

NullReferenceException: Object reference not set to an instance of an object
FMODUnity.Settings.<SortPlatformChildren>b__94_0 (System.String a, System.String b) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:813)
System.Collections.Generic.ArraySortHelper`1[T].InsertionSort (T[] keys, System.Int32 lo, System.Int32 hi, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.ArraySortHelper`1[T].IntroSort (T[] keys, System.Int32 lo, System.Int32 hi, System.Int32 depthLimit, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.ArraySortHelper`1[T].IntrospectiveSort (T[] keys, System.Int32 left, System.Int32 length, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.ArraySortHelper`1[T].Sort (T[] keys, System.Int32 index, System.Int32 length, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
Rethrow as InvalidOperationException: Failed to compare two elements in the array.
System.Collections.Generic.ArraySortHelper`1[T].Sort (T[] keys, System.Int32 index, System.Int32 length, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.List`1[T].Sort (System.Comparison`1[T] comparison) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
FMODUnity.Settings.SortPlatformChildren (FMODUnity.Platform platform) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:809)
FMODUnity.Settings.SetPlatformParent (FMODUnity.Platform platform, FMODUnity.Platform newParent) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:786)
FMODUnity.Settings.LinkPlatformToParent (FMODUnity.Platform platform) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:716)
FMODUnity.Settings.LinkPlatform (FMODUnity.Platform platform) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:401)
FMODUnity.Settings.ForEachPlatform (System.Action`1[T] action) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:339)
FMODUnity.Settings.OnEnable () (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:918)
UnityEngine.Resources:Load(String)
FMODUnity.Settings:get_Instance() (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:77)
FMODUnity.BankRefresher:UpdateFileWatcherPath() (at Assets/Plugins/FMOD/src/Editor/BankRefresher.cs:53)
FMODUnity.BankRefresher:Update() (at Assets/Plugins/FMOD/src/Editor/BankRefresher.cs:45)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

Something missing with platforms.

Hi Louis,

Im using package: fmodstudio20111gamecore_gdk220604

Also at startup unity is telling me that:

NullReferenceException: Object reference not set to an instance of an object
FMODUnity.Settings.<SortPlatformChildren>b__94_0 (System.String a, System.String b) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:813)
System.Collections.Generic.ArraySortHelper`1[T].InsertionSort (T[] keys, System.Int32 lo, System.Int32 hi, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.ArraySortHelper`1[T].IntroSort (T[] keys, System.Int32 lo, System.Int32 hi, System.Int32 depthLimit, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.ArraySortHelper`1[T].IntrospectiveSort (T[] keys, System.Int32 left, System.Int32 length, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.ArraySortHelper`1[T].Sort (T[] keys, System.Int32 index, System.Int32 length, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
Rethrow as InvalidOperationException: Failed to compare two elements in the array.
System.Collections.Generic.ArraySortHelper`1[T].Sort (T[] keys, System.Int32 index, System.Int32 length, System.Comparison`1[T] comparer) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
System.Collections.Generic.List`1[T].Sort (System.Comparison`1[T] comparison) (at <e40e5a8f982c4b618a930d29f9bd091c>:0)
FMODUnity.Settings.SortPlatformChildren (FMODUnity.Platform platform) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:809)
FMODUnity.Settings.SetPlatformParent (FMODUnity.Platform platform, FMODUnity.Platform newParent) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:786)
FMODUnity.Settings.LinkPlatformToParent (FMODUnity.Platform platform) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:716)
FMODUnity.Settings.LinkPlatform (FMODUnity.Platform platform) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:401)
FMODUnity.Settings.ForEachPlatform (System.Action`1[T] action) (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:339)
FMODUnity.Settings.OnEnable () (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:918)
UnityEngine.Resources:Load(String)
FMODUnity.Settings:get_Instance() (at Assets/Plugins/FMOD/src/Runtime/Settings.cs:77)
FMODUnity.BankRefresher:UpdateFileWatcherPath() (at Assets/Plugins/FMOD/src/Editor/BankRefresher.cs:53)
FMODUnity.BankRefresher:Update() (at Assets/Plugins/FMOD/src/Editor/BankRefresher.cs:45)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()```

Also, tried to redproduce this error on empty project and everything goes fine, so if you have any hints why this error appears, help would be appreciated

Well, now i can’t event build for Window.

You seem to have deleted your previous message, but the NullReferenceException: Object reference not set to an instance of an object on platform deletion is a known bug that was fixed in 2.01.20. If updating your minor version isn’t feasible, the relevant change in 2.01.20 is in ./Assets/Plugins/FMOD/src/Runtime/Settings.cs, and can be found here: Update for 2.01.20 · fmod/fmod-for-unity@39685a7 · GitHub

As for the mismatching override, it’s likely that there’s a mismatch in your FMOD for Unity and platform package versions - try reimporting the correct versions of the offending packages and seeing if that resolves the issue.

So for anyone searching for a solution.
Changed unity to the neaarly newest version, then installed proper package for FMOD and other neccessary packages for Unity to be integrated with any platform, deleted old files from Unity project for platforms, changed Visual Studio from 22 to 19 installed few Windows SDKs, MSVC 19 build tools and now it magically works.

Sory if not in order but i searched for this solution nearly 2 weeks and trying above steps with different order works

1 Like