Xamarin Случайное Исключение Коллекции Модифицировано - PullRequest
0 голосов
/ 18 апреля 2019

Я создал простое навигационное приложение, в котором есть несколько экранов, которые содержат средства выбора, списки, кнопки и изображения с использованием Skia sharp SVG.

Кажется, все работает правильно, но иногда оно случайным образом генерирует исключение в любой случайной позиции. Даже когда я оставляю приложение открытым некоторое время, я получаю то же исключение.

Ошибка, которую он выдает:

Коллекция была изменена; операция перечисления может не выполняться ".

Я пытался его отладить. Каждый раз, когда происходит сбой и появляется следующая трассировка стека:

в System.Collections.Generic.List 1+Enumerator[T].MoveNextRare () [0x00013] in <58604b4522f748968296166e317b04b4>:0 at System.Collections.Generic.List 1 + Перечислитель [T] .MoveNext () [0x0004a] в <58604b4522f748968296166e317b04b4>: 0 в Xamarin.Forms.Platform.Android.VisualElementTracker.HandleRedrawNeeded (отправитель System.Object, Xamarin.Forms.Internals.EventArg`1 [T] e) [0x00022] в D: \ a \ 1 \ s \ Xamarin.Forms.Platform .Android \ VisualElementTracker.cs: 180 в Xamarin.Forms.VisualElement.BatchCommit () [0x0001c] в D: \ a \ 1 \ s \ Xamarin.Forms.Core \ VisualElement.cs: 581 в Xamarin.Forms.AnimationExtensions.HandleTweenerFinished (System.Object o, System.EventArgs args) [0x000cb] в D: \ a \ 1 \ s \ Xamarin.Forms.Core \ AnimationExtensions.cs: 276 в Xamarin.Forms.Tweener.b__22_0 (шаг System.Int64) [0x00095] в D: \ a \ 1 \ s \ Xamarin.Forms.Core \ Tweener.cs: 103 в Xamarin.Forms.Internals.Ticker.SendSignals (шаг System.Int64) [0x0003c] в D: \ a \ 1 \ s \ Xamarin.Forms.Core \ Internals \ Ticker.cs: 102 в Xamarin.Forms.Internals.Ticker.SendSignals (System.Int32 timestep) [0x00014] в D: \ a \ 1 \ s \ Xamarin.Forms.Core \ Internals \ Ticker.cs: 91 в Xamarin.Forms.Platform.Android.AndroidTicker.OnValOnUpdate (отправитель System.Object, Android.Animation.ValueAnimator + AnimatorUpdateEventArgs e) [0x00000] в D: \ a \ 1 \ s \ Xamarin.Ter.P. CS: 71 в Android.Animation.ValueAnimator + IAnimatorUpdateListenerImplementor.OnAnimationUpdate (Android.Animation.ValueAnimator animation) [0x00017] в <2960acf2eeb24d88b5230e1e8afbdc2e>: 0 на Android.Animation.ValueAnimator + IAnimatorUpdateListenerInvoker.n_OnAnimationUpdate_Landroid_animation_ValueAnimator_ (System.IntPtr JNIEnv, System.IntPtr native__this, System.IntPtr native_animation) [0x00011] в <2960acf2eeb24d88b5230e1e8afbdc2e>: 0 at (динамический метод-обертка) Android.Runtime.DynamicMethodNameCounter.17 (intptr, intptr, intptr)

Инструменты:

  • Visual Studio для Mac: 8.0.3 (сборка 14)
  • Xamarin Mac Development: 8.0.2

Испытательные устройства:

  • Samsung Galaxy S9
  • Lenovo Tab 3 7
  • One Plus 5T

1 Ответ

0 голосов
/ 01 мая 2019

В моем случае проблема была решена, я показывал настраиваемый вид индикатора активности на всех страницах, чтобы показать загрузку.В cs этого представления я выполнял 3 задачи, чтобы вращать 3 круга, чтобы показать загрузку непрерывно с ожиданием в несколько миллисекунд, и никогда не останавливал задачу.По какой-то странной причине, когда я добавил реализацию, когда страница исчезает, она останавливает все задачи, исправляющие эту проблему в моем конце.это странно, но у меня это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...