【发布时间】:2021-08-15 20:06:59
【问题描述】:
我在我的 Unity 项目中使用 MapBox SDK,我只是显示地图。我不使用方向等其他服务。不知何故,我总是收到一个错误,即存在内存泄漏。因为我的项目是一个 Ios 和 Android 应用程序,所以内存泄漏对我来说听起来不是那么好哈哈。
引用的错误是这样的:
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[])
Mapbox.Unity.Telemetry.<PostWWW>d__8:MoveNext() (at Assets\Mapbox\Unity\Telemetry\TelemetryEditor.cs:82)
Mapbox.Unity.Utilities.Routine:MoveNext() (at Assets\Mapbox\Unity\Utilities\Runnable.cs:130)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
Mapbox.Unity.Utilities.Routine:.ctor(IEnumerator) (at Assets\Mapbox\Unity\Utilities\Runnable.cs:116)
Mapbox.Unity.Utilities.Runnable:Run(IEnumerator) (at Assets\Mapbox\Unity\Utilities\Runnable.cs:47)
Mapbox.Unity.Telemetry.TelemetryEditor:SendTurnstile() (at Assets\Mapbox\Unity\Telemetry\TelemetryEditor.cs:37)
Mapbox.Unity.MapboxAccess:ConfigureTelemetry() (at Assets\Mapbox\Unity\MapboxAccess.cs:196)
Mapbox.Unity.MapboxAccess:SetConfiguration(MapboxConfiguration, Boolean) (at Assets\Mapbox\Unity\MapboxAccess.cs:108)
Mapbox.Unity.MapboxAccess:LoadAccessToken() (at Assets\Mapbox\Unity\MapboxAccess.cs:161)
Mapbox.Unity.MapboxAccess:.ctor() (at Assets\Mapbox\Unity\MapboxAccess.cs:66)
Mapbox.Unity.MapboxAccess:get_Instance() (at Assets\Mapbox\Unity\MapboxAccess.cs:41)
Mapbox.Unity.Map.<SetupAccess>d__88:MoveNext() (at Assets\Mapbox\Unity\Map\AbstractMap.cs:609)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
UnityEngine.MonoBehaviour:StartCoroutineManaged(String, Object)
UnityEngine.MonoBehaviour:StartCoroutine(String, Object)
UnityEngine.MonoBehaviour:StartCoroutine(String)
Mapbox.Unity.Map.AbstractMap:MapOnStartRoutine(Boolean) (at Assets\Mapbox\Unity\Map\AbstractMap.cs:534)
Mapbox.Unity.Map.AbstractMap:Start() (at Assets\Mapbox\Unity\Map\AbstractMap.cs:500)
它指向 SDK 附带的 MapBox 脚本。我不知道是否应该在此处包含这些内容,因为我没有以任何方式接触它们,而且它们非常通用并且指向许多其他脚本。
有人知道吗?或者我可以忽略这一点,我的应用程序可以正常工作吗?到目前为止,据我所知,我没有任何测试问题。
感谢您与我一起思考!
【问题讨论】:
-
文字表示
Mapbox.Unity.Map.AbstractMap使用了一些非托管资源。 Ubiquotus 具有任何类型的高性能绘图或图像。必须使用对 Dispose 的调用来释放非托管资源。 |请向我们展示您如何创建实例以及在哪里(如果有的话)处理它。我通常的建议是:“创建。使用。处置。所有这些都在同一段代码中,最好使用 using 块。”但这可能是不可能的罕见情况。
标签: c# unity3d memory-leaks mapbox