2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Une collection native n'a pas été supprimée, ce qui a entraîné une fuite de mémoire. Allouée à partir de :
Unity.Collections.NativeArray1:.ctor(Byte[], Allocator)
UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[])
UnityEngine.Networking.UnityWebRequest:SetupPost(UnityWebRequest, WWWForm)
Le texte complet de l'erreur est comme ci-dessus
Voyons d'abord les solutions
en utilisant (var request = UnityWebRequest.Post(serverURL, "POST"))
en utilisant (var uh = new UploadHandlerRaw(bodyRaw))
{
//request.disposeUploadHandlerOnDispose = true;
//request.disposeDownloadHandlerOnDispose = true;
//request.disposeCertificateHandlerOnDispose = true;
request.SetRequestHeader("Contenu-Type", "application/json;charset=utf-8");
rendement retour demande.SendWebRequest();
}
Cela peut être résolu en combinant deux utilisations
Après avoir vérifié de nombreuses informations sur Internet, de nombreuses personnes ont déclaré que le gestionnaire de téléchargement qu'ils avaient créé n'était pas publié, ce qui a provoqué une fuite de mémoire.
Beaucoup de gens disent d'utiliser
//request.disposeUploadHandlerOnDispose = true;
//request.disposeDownloadHandlerOnDispose = true;
//request.disposeCertificateHandlerOnDispose = true;
Ce sera bien si vous définissez ces trois paramètres, mais je l'ai essayé et l'effet n'était pas idéal. Cela peut être dû à des problèmes avec Unity lui-même ou à des changements.
Ensuite, j'ai pensé : est-il possible de libérer le gestionnaire de téléchargement manuellement ? Essaie,
demande.uploadHandler.Dispose();
L'effet n'est pas idéal. J'ai même entendu un vieil homme sur Internet dire d'utiliser un constructeur pour le créer.
byte[] bodyRaw = Encodage.UTF8.GetBytes(send_data);
webRequest.uploadHandler = nouveau UploadHandlerRaw(bodyRaw);
Le même effet n’est pas idéal.
puis dans
Une collection native n'a pas été supprimée, ce qui a entraîné une fuite de mémoire. - Forum Unity
La solution se trouve tout en bas de cette page. Merci mon ami. J'ai résolu un problème qui me dérangeait depuis longtemps.
J'ai découvert ce forum sur le blog d'un autre auteur.
https://blog.csdn.net/Miner_W/article/details/129400923
Merci également à ce vieil homme.