Content.Local.Update 함수 사용중 contentJson을 접근하였을때 크래시 나는 버그

안녕하세요. 새롭게 바뀐 차트기능을 구현중 지속적인 에러가 나서 문의드립니다.

예제를 참고하여 아래처럼 차트 적용을 구현 하였는데
chartDic를 참조하는 순간 유니티가 팅깁니다.

디버그를 돌려봐도 저 라인에 들어가면 변수를 보는 것과 동시에 팅깁니다.
관련하여 코드 첨부 드리니 확인 한번 부탁드립니다.

감사합니다.

 private async UniTask<Dictionary<string, ChartData>> GetLoadAndSaveChart(List<ContentTableItem> cardDataList)
        {
            BackendContentReturnObject chartBro = null;

            Backend.CDN.Content.Local.Update(cardDataList, GetProgress, bro => { chartBro = bro; });

            await UniTask.WaitUntil(() => chartBro != null);

            if (chartBro.IsSuccess() is false)
                throw new Exception("Failed Load Chart..");

            var chartDic = chartBro.GetContentDictionarySortByChartName();
            var ret = new Dictionary<string, ChartData>();

            foreach (var (key, value) in chartDic)
            {
                Debug.Log("value.contentJson: " + value.contentJson);
                ret.Add(key, new ChartData(key, value.contentJson));
            }

            return ret;

            void GetProgress(int totalCount, int remainCount, string fileName)
            {
                Debug.Log("totalCount : " + totalCount + " remainCount : " + remainCount + " fileName : " + fileName);
            }
        }

안녕하세요 개발자님,
현재 사용하고 계신 SDK 버전과 프로젝트 정보 공유해주시면
관련 내용 확인하여 안내드릴 수 있도록 하겠습니다.

버전정보 공유드립니다

Project: Wolf_Dev
Unity: 2022.3.44f1
SDK: 5.14.0

확인 과정에서 안내가 지연되어 죄송합니다.

공유해주신 주신 코드 중, Foreach 내부에 있는 value.contentJson에 문제가 있어 발생하는 오류로 확인됩니다.
contentJson을 호출하면 무조건 발생하게 되므로 임시로 아래와 같이 변경 이용하여 주시면 감사하겠습니다.

  • 기존
    ret.Add(key, new ChartData(key, value.contentJson));
  • 변경
    ret.Add(key, new ChartData(key, new LitJson.JsonData(value.contentString)));

해당 오류가 있는 contentJson은 다음 SDK 업데이트를 통해 수정될 예정입니다.
감사합니다.

좋아요 2

기다렸다가 나중에 수정되면 활용해야겠네요. 저도 이 문제 생겨서 찾아보고있었는데, 감사합니다.!

위 내용으로 진행했는데 foreach에서 문제가 일어나서

var json = new LitJson.JsonData(value.contentString)

foreach (JsonData item in JsonMapper.ToObject(json.ToString()))
{
Debug.Log(item[“itemID”]);
Debug.Log(item[“itemName”]);
Debug.Log(item[“hpPower”]);
Debug.Log(item[“num”]);
}

이런식으로 하니까 되긴하는데, 이렇게 진행하는게 맞는지 궁금합니다.

안녕하세요, 개발자님.
말씀하신대로 진행하시는 것이 맞습니다.
감사합니다.

@kyc521 @yoon0020

기다려주셔서 감사합니다.
SDK 5.15.0 버전 업데이트를 통해 해당 에러가 수정되어 공유 드립니다.