【Unity】PlayFabのエラー「A Native Collection...」の解決方法
Playfabでメモリリークのエラーが発生したのでその解決策です。
発生したエラー文
A Native Collection has not been disposed, resulting in a memory leak. Allocated from:
Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator)
UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[])
PlayFab.Internal.<Post>d__12:MoveNext() (at Assets\PlayFabSDK\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:117)
エラー全文
A Native Collection has not been disposed, resulting in a memory leak. Allocated from:
Unity.Collections.NativeArray1:.ctor(Byte[], Allocator) UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[]) PlayFab.Internal.<Post>d__12:MoveNext() (at Assets\PlayFabSDK\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:117) UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) UnityEngine.MonoBehaviour:StartCoroutineManaged2(MonoBehaviour, IEnumerator) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) PlayFab.Internal.PlayFabUnityHttp:MakeApiCall(Object) (at Assets\PlayFabSDK\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:107) PlayFab.Internal.PlayFabHttp:_MakeApiCall(String, String, PlayFabRequestCommon, AuthType, Action
1, Action1, Object, Dictionary
2, Boolean, PlayFabAuthenticationContext, PlayFabApiSettings, IPlayFabInstanceApi) (at Assets\PlayFabSDK\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:232)
PlayFab.Internal.PlayFabHttp:MakeApiCall(String, PlayFabRequestCommon, AuthType, Action1, Action
1, Object, Dictionary2, PlayFabAuthenticationContext, PlayFabApiSettings, IPlayFabInstanceApi) (at Assets\PlayFabSDK\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:133) PlayFab.PlayFabEventsInstanceAPI:WriteEvents(WriteEventsRequest, Action
1, Action1, Object, Dictionary
2) (at Assets\PlayFabSDK\Events\PlayFabEventsInstanceAPI.cs:118)
PlayFab.Public.ScreenTimeTracker:Send() (at Assets\PlayFabSDK\Entity\ScreenTimeTracker.cs:190)
PlayFab.Public.ScreenTimeTracker:OnApplicationFocus(Boolean) (at Assets\PlayFabSDK\Entity\ScreenTimeTracker.cs:165)
PlayFab.Internal.PlayFabHttp:OnApplicationFocus(Boolean) (at Assets\PlayFabSDK\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:338)
UnityEditorInternal.InternalEditorUtility:OnGameViewFocus(Boolean)
UnityEditor.PlayModeView:SetFocus(Boolean)
UnityEditor.GameView:OnLostFocus()
UnityEditor.HostView:OnLostFocus()
解決策
エディタのバージョンが2021.3.3.11f1(2021年バージョン)だとエラーが発生するようなので、エディタのバージョンを2022のLTSに変更したら完全になおりました
試したけど何の効果も無かったやつ↓
①全削除してもう一回入れる
一度PlayfabSDKとPlayfabEditorExtentionsを削除しました。
アセットでPlayfabと検索して出てきたフォルダ全部削除しました。ちなみにPlayfabEditorExtentionsがなぜか複数プロジェクト内にあったので、全部綺麗に削除しました。
再度手順通りにPlayfabEditorExtentionsを入れてそこからPlayfabSDKをインストールしたらエラー発生しなくなりました。
②PlayFab editor extensionsの単体削除
③PlayFab editor extensionsを使用せずにSDKダウンロード
④以下に記載の事も試した
⑤ライブラリフォルダの削除から再起動
ただしかなり時間がかかるので注意
効果なし
⑥別に無視でも問題なし?
この問題はPlayFab 拡張機能によるものなので無視しても良いという意見も。ただ気になる。
記事は以上です。
Discussion