Closed sawada-github closed 2 years ago
Unity2021.3.4f1でニフクラv4.4.2を使用したのですが、以下のようなエラーが起きてしまいます。 A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.
エラーが起きた箇所が表示されないので、以下の内容を参考にエラー箇所を表示するようにしました。 https://qiita.com/papparapa/items/a692714c47a7c602215e
すると、「Assets\NCMB\Script\NCMBConnection.cs:266」がエラーが原因で、以下のようなコードでした。 「req.uploadHandler = (UploadHandler)new UploadHandlerRaw (bodyRaw);」
ここをどう直せばいいのか、あるいは触っていいのかもわからないため、自分でNCMBを呼び出している箇所を確認したところ、以下のソースコードの「obj.SaveAsync()」が原因でした。
if (objList.Count == 0) { NCMBObject obj = new NCMBObject(table_name); obj.Add("count", 1); obj.Add("stage_id", colum); obj.SaveAsync(); } else { objList[0].Increment("count"); objList[0].SaveAsync(); } }
objListの取得部分は省略していますが、ステージIDを元に、そのステージの回数を加算していく処理です。 このコードには「SaveAsync」が2か所ありますが、両方でこのエラーが発生していますが、必ず発生するわけではなく、「SaveAsync」したときに体感で50%程度の確率で発生します。 また、ニフクラにはデータが保存されおり、このエラーが発生したときでもデータは保存されているようです。(100%保存できているとは言えませんが)
また、上記のソースコードだけでなく、同じように「SaveAsync」している箇所でも発生しています。 これらの処理は例えば秒速100回行っている、ということもなく、せいぜい1秒に1回。APIの呼び出し回数が限界に達しているようなこともありません。
このエラーはどうやって対処すればいいでしょうか?
現在のバージョンではUnity 2021はサポート対象外となります。次期バージョンでサポート予定となっています。
なるほど。ありがとうございます
Unity2021.3.4f1でニフクラv4.4.2を使用したのですが、以下のようなエラーが起きてしまいます。 A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.
エラーが起きた箇所が表示されないので、以下の内容を参考にエラー箇所を表示するようにしました。 https://qiita.com/papparapa/items/a692714c47a7c602215e
すると、「Assets\NCMB\Script\NCMBConnection.cs:266」がエラーが原因で、以下のようなコードでした。 「req.uploadHandler = (UploadHandler)new UploadHandlerRaw (bodyRaw);」
ここをどう直せばいいのか、あるいは触っていいのかもわからないため、自分でNCMBを呼び出している箇所を確認したところ、以下のソースコードの「obj.SaveAsync()」が原因でした。
objListの取得部分は省略していますが、ステージIDを元に、そのステージの回数を加算していく処理です。 このコードには「SaveAsync」が2か所ありますが、両方でこのエラーが発生していますが、必ず発生するわけではなく、「SaveAsync」したときに体感で50%程度の確率で発生します。 また、ニフクラにはデータが保存されおり、このエラーが発生したときでもデータは保存されているようです。(100%保存できているとは言えませんが)
また、上記のソースコードだけでなく、同じように「SaveAsync」している箇所でも発生しています。 これらの処理は例えば秒速100回行っている、ということもなく、せいぜい1秒に1回。APIの呼び出し回数が限界に達しているようなこともありません。
このエラーはどうやって対処すればいいでしょうか?