2394425147 / astrodx

727 stars 32 forks source link

导入谱面报错 #48

Closed CL4R3T closed 10 months ago

CL4R3T commented 10 months ago

详细情况: 我的客户端原已经导入了约500张谱面,在近日导入新谱面的过程中,在游戏加载界面会报错。 具体表现为游戏界面卡在Syncing levels阶段,并在lunar console内产生如下报错信息。 经尝试,若卸载客户端并重新安装,则只能导入一张谱面。若尝试同时导入多张谱面,或者是在导入第一张谱面完成之后继续导入新谱面,都会报错。 这导致我的客户端目前只能游玩一张谱面,如果需要游玩其他谱面则需要删除原谱面并导入新谱面。

设备: iPad Pro 2021 游戏版本: 2.0.0(98)

报错信息: NullReferenceException: Object reference not set to an instance of an object.

System.Collections.Generic.Dictionary2[TKey,TValue].FindEntry (TKey key) (at <00000000000000000000000000000000>:0) System.Collections.Generic.Dictionary2[TKey,TValue].TryGetValue (TKey key, TValue& value) (at <00000000000000000000000000000000>:0) AstroDX.Cache.DataLibrary.InstallCollection (System.String collectionName, System.String parentDirectory, System.Collections.Generic.ICollection1[T] removalList, System.IProgress1[T] progressReporter, System.Boolean ignoreExisting) (at <00000000000000000000000000000000>:0) AstroDX.Cache.DataLibrary+<>cDisplayClass16_0.b1 (System.String fullDirectoryPath) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel+<>cDisplayClass19_0`1[TLocal].b1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.TaskReplicator+Replica.Execute () (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Task.Execute () (at <00000000000000000000000000000000>:0) System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task& currentTaskSlot) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Task.ExecuteEntry (System.Boolean bPreventDoubleExecution) (at <00000000000000000000000000000000>:0) System.Threading.ThreadPoolWorkQueue.Dispatch () (at <00000000000000000000000000000000>:0) --- End of stack trace from previous location where exception was thrown --- System.Threading.Tasks.Parallel+<>c__DisplayClass19_01[TLocal].<ForWorker>b__1 (System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.TaskReplicator+Replica.Execute () (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Task.Execute () (at <00000000000000000000000000000000>:0) System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task& currentTaskSlot) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Task.ExecuteEntry (System.Boolean bPreventDoubleExecution) (at <00000000000000000000000000000000>:0) System.Threading.ThreadPoolWorkQueue.Dispatch () (at <00000000000000000000000000000000>:0) Rethrow as AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.) System.Threading.Tasks.TaskReplicator.Run[TState] (System.Threading.Tasks.TaskReplicator+ReplicatableUserAction1[TState] action, System.Threading.Tasks.ParallelOptions options, System.Boolean stopOnFirstFailure) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForWorker[TLocal] (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action1[T] body, System.Action2[T1,T2] bodyWithState, System.Func4[T1,T2,T3,TResult] bodyWithLocal, System.Func1[TResult] localInit, System.Action1[T] localFinally) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal] (TSource[] array, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action1[T] body, System.Action2[T1,T2] bodyWithState, System.Action3[T1,T2,T3] bodyWithStateAndIndex, System.Func4[T1,T2,T3,TResult] bodyWithStateAndLocal, System.Func5[T1,T2,T3,T4,TResult] bodyWithEverything, System.Func1[TResult] localInit, System.Action1[T] localFinally) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal] (System.Collections.Generic.IEnumerable1[T] source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action1[T] body, System.Action2[T1,T2] bodyWithState, System.Action3[T1,T2,T3] bodyWithStateAndIndex, System.Func4[T1,T2,T3,TResult] bodyWithStateAndLocal, System.Func5[T1,T2,T3,T4,TResult] bodyWithEverything, System.Func1[TResult] localInit, System.Action1[T] localFinally) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForEach[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Action1[T] body) (at <00000000000000000000000000000000>:0) AstroDX.Cache.DataLibrary.ReloadAll (System.IProgress1[T] progressReporter, System.Boolean ignoreExisting) (at <00000000000000000000000000000000>:0) AstroDX.Globals.Persistent.Initialize (System.IProgress1[T] notifier) (at <00000000000000000000000000000000>:0) AstroDX.Contexts.Hub.Startup.StartupWindow.Start () (at <00000000000000000000000000000000>:0) --- End of stack trace from previous location where exception was thrown --- System.Threading.Tasks.Parallel.ForWorker[TLocal] (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action1[T] body, System.Action2[T1,T2] bodyWithState, System.Func4[T1,T2,T3,TResult] bodyWithLocal, System.Func1[TResult] localInit, System.Action1[T] localFinally) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal] (TSource[] array, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action1[T] body, System.Action2[T1,T2] bodyWithState, System.Action3[T1,T2,T3] bodyWithStateAndIndex, System.Func4[T1,T2,T3,TResult] bodyWithStateAndLocal, System.Func5[T1,T2,T3,T4,TResult] bodyWithEverything, System.Func1[TResult] localInit, System.Action1[T] localFinally) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal] (System.Collections.Generic.IEnumerable1[T] source, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action1[T] body, System.Action2[T1,T2] bodyWithState, System.Action3[T1,T2,T3] bodyWithStateAndIndex, System.Func4[T1,T2,T3,TResult] bodyWithStateAndLocal, System.Func5[T1,T2,T3,T4,TResult] bodyWithEverything, System.Func1[TResult] localInit, System.Action1[T] localFinally) (at <00000000000000000000000000000000>:0) System.Threading.Tasks.Parallel.ForEach[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Action1[T] body) (at <00000000000000000000000000000000>:0) AstroDX.Cache.DataLibrary.ReloadAll (System.IProgress1[T] progressReporter, System.Boolean ignoreExisting) (at <00000000000000000000000000000000>:0) AstroDX.Globals.Persistent.Initialize (System.IProgress1[T] notifier) (at <00000000000000000000000000000000>:0) AstroDX.Contexts.Hub.Startup.StartupWindow.Start () (at <00000000000000000000000000000000>:0)

CL4R3T commented 10 months ago

第二天这个bug莫名其妙就消失了,可以正常运行了