Ошибка тайм-аута диспетчеризации ввода в приложении Xamarin для Android

У меня проблема с Xamarin Android.

Несколько пользователей Android, использующих мое приложение, получают ошибку ANR 9/10 на устройствах Samsung. Я безуспешно пытался воспроизвести проблему на наших устройствах (Samsung S9 и A3 2016).

Домашняя страница работает корректно; он использует оператор do while, но я не думаю, что он влияет (см. Код ниже). Ошибка возникает на этапе входа в систему при выполнении некоторого http-запроса.

Анимация главной страницы:

private async Task AnimazioneTiles()
        {
            try
            {
                do
                {
                    foreach (VMTileWelcome tile in tilesWelcome)
                    {

                        tileImage.Source = tile.ImageSource;
                        tileTitle.Text = tile.Title;
                        tileSubTitile.Text = tile.SubTitle;

                        await stackContenitoreTiles.FadeTo(1, 400, Easing.Linear);
                        await Task.Delay(5000);
                        await stackContenitoreTiles.FadeTo(0, 400, Easing.Linear);
                        await Task.Delay(500);

                    }

                }
                while (true);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine($"Errore animazione! {ex}");
            }
        }

HTTP-запросы:

HttpOperationResponse<t> result = await Task.Run(async () => await this.PostAsync<t>(endPoint, content));

Консоль ANR Google:

Истекло время ожидания диспетчеризации ввода (Ожидание отправки неключевого события, поскольку затронутое окно не завершило обработку определенных событий ввода, которые были доставлены ему более 500,0 мс назад. Длина очереди ожидания: 14. Возраст заголовка очереди ожидания: 61840,6 мс.)

md5b5fc6e3de8ade6adb016b96a6a1d3645.MainActivity

    "main" prio=5 tid=1 Native
      | group="main" sCount=1 dsCount=0 obj=0x773c4e18 self=0x773eccba00
      | sysTid=11111 nice=-10 cgrp=default sched=0/0 handle=0x774361cab0
      | state=S schedstat=( 40042176353 355926648 12143 ) utm=3900 stm=104 core=4 HZ=100
      | stack=0x7fd48ce000-0x7fd48d0000 stackSize=8MB
      | held mutexes=
      #00  pc 000000000001bf6c  /system/lib64/libc.so (syscall+28)
      #01  pc 00000000000e8890  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+160)
      #02  pc 000000000034aa64  /system/lib64/libart.so (_ZN3art3JNI23CallStaticObjectMethodAEP7_JNIEnvP7_jclassP10_jmethodIDP6jvalue+292)
      #03  pc 000000000000b4d0  /data/app/it.tisviluppo.fpcu-1/lib/arm64/libmonodroid.so (java_interop_jnienv_call_static_object_method_a+40)
      at md58432a647068b097f9637064b8985a5e0.NavigationPageRenderer.n_onAttachedToWindow (Native method)
      at md58432a647068b097f9637064b8985a5e0.NavigationPageRenderer.onAttachedToWindow (NavigationPageRenderer.java:49)
      at android.view.View.dispatchAttachedToWindow (View.java:16879)
      at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3129)
      at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:3136)
      at android.view.ViewGroup.addViewInner (ViewGroup.java:4675)
      at android.view.ViewGroup.addView (ViewGroup.java:4477)
      at android.view.ViewGroup.addView (ViewGroup.java:4417)
      at android.view.ViewGroup.addView (ViewGroup.java:4390)
      at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1425)
      at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1750)
      at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1819)
      at android.support.v4.app.BackStackRecord.executeOps (BackStackRecord.java:797)
      at android.support.v4.app.FragmentManagerImpl.executeOps (FragmentManager.java:2590)
      at android.support.v4.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2377)
      at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2332)
      at android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:2239)
      at android.support.v4.app.FragmentManagerImpl$1.run (FragmentManager.java:700)
      at android.os.Handler.handleCallback (Handler.java:751)
      at android.os.Handler.dispatchMessage (Handler.java:95)
      at android.os.Looper.loop (Looper.java:154)
      at android.app.ActivityThread.main (ActivityThread.java:6823)
      at java.lang.reflect.Method.invoke! (Native method)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1563)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1451)

У кого-то были такие же проблемы с xamarin?


person Benedetto Sigillò    schedule 29.04.2019    source источник
comment
Этот вопрос неоднозначен, пожалуйста, добавьте StackTrace?   -  person FreakyAli    schedule 29.04.2019
comment
Я не могу получить его из консоли Google Play, и я не смог воспроизвести это на своих устройствах :( (извините за плохой английский)   -  person Benedetto Sigillò    schedule 29.04.2019
comment
Если ваше приложение дает сбой, в консоли Google Play есть все детали трассировки стека, если быть честным, без нее вы обречены, вам, вероятно, понадобится столетие, чтобы понять проблему, и если вы не можете воспроизвести это при отладке, возможно, загрузите приложение из магазина и проверить потом, если это происходит там!   -  person FreakyAli    schedule 29.04.2019
comment
Я уже протестировал и релизную версию из магазина   -  person Benedetto Sigillò    schedule 29.04.2019
comment
ТАК даже это работает для вас?   -  person FreakyAli    schedule 29.04.2019
comment
Нет, я не могу воспроизвести проблему. Мы ищем решения уже несколько месяцев. Проблема, как нам кажется, началась после обновления Xamarin Forms, но мы не можем быть уверены.   -  person Benedetto Sigillò    schedule 29.04.2019
comment
Ваше приложение уже было в Playstore, ведь изменение в Xamarin Forms не может повлиять на то, что там уже было, не так ли?   -  person FreakyAli    schedule 29.04.2019
comment
Да, мы опубликовали 2-3 обновления, чтобы попытаться решить проблему, но мы понятия не имеем, что происходит.   -  person Benedetto Sigillò    schedule 02.05.2019


Ответы (1)


Проблема была в энергосберегающем режиме в устройствах Samsung!

person Benedetto Sigillò    schedule 14.08.2020
comment
Можете ли вы поделиться дополнительной информацией? Как режим энергосбережения влияет на приложение? Как вы решили проблему? - person Kithoras Carzyl; 04.06.2021