Поверхность:: setbuffersDimensions Логарифм журнала

Я создал приложение для Android, которое отлично работает и, как ожидается, с планшетом: Acer. 7-дюймовый API 21.

Недавно я получил новый планшет Acer. 10-дюймовый API 22.

Теперь я получаю журналы, рассылаемые спамом с этой строкой.

04-12 18:23:27.371 8776-9082/com.callbell.callbell D/Surface: Surface::setBuffersDimensions(this=0x7f9aa44000,w=800,h=1280)

и экран замерзнет и будет пустым в произвольные интервалы. Я не видел ошибок в журнале, и единственная ссылка, которую я могу найти в этой строке журнала, находится здесь

https://android.googlesource.com/platform/frameworks/native/+/fe94bd262bc0a33d709aee8fb70c1369656b479b/libs/gui/Surface.cpp

UPDATE Я пробовал это на нескольких устройствах с переменным успехом.

НЕТ ВОПРОСОВ:

Samsung Galaxy Tab 7 "

Samsung Galaxy Tab 10 "

Acer Iconia 8 "

ВОПРОСЫ:

Acer Iconia 10 "

Ответ 1

Этот журнал появляется, когда у нас есть EditText с курсором, и этот мигающий курсор отвечает за перерисовку экрана.

Поверхностные:: setBuffersDimensions (это = 0x7f4ccc7c00, ш = 1080, = 1920 ч)
D/OpenGLRenderer: WorkerThread 0x7f7c07f000 работает

Когда я сделал

android:cursorVisible="false"

эти журналы исчезли.

Итак, когда студийный экран стал спамом с этими журналами, его предупреждение для разработчика проверить шаблон рисования пользовательского интерфейса.

Ответ 2

Этот журнал означает, что что-то на вашем экране перерисовывается.
Он отображается только на нескольких устройствах, но независимо от того, какое устройство вы используете, вы можете включить "обновления аппаратных уровней" или "обновления просмотра gpu" в настройках разработчика, и вы увидите вспыхнутую зону, которая перерисовывается.
Более того, если проблема существует на одном устройстве, вероятно, она существует и для других.

Ответ 3

Если кто-то еще обнаружит эту проблему, убедитесь, что у вас нет чего-то вроде ProgressBar или чтобы вы не прекращали рендеринг после завершения загрузки WebView. В Xamarin.Android мне пришлось переопределить OnPageFinished из WebViewClient и установить progressBar.Visibility = ViewStates.Gone; , Там также есть ссылка на репозиторий GitHub (не мой), который имеет некоторые другие реализации переопределения WebViewClient:

        public class MyWebViewClient : WebViewClient
    {
        public override bool ShouldOverrideUrlLoading(WebView view, string url)
        {
            view.LoadUrl(url);
            return false;
        }

        //More overrides: https://github.com/xamarin/monodroid-samples/blob/master/MonoIO/UI/MapFragment.cs
        public override void OnPageFinished(WebView view, string url)
        {
            base.OnPageFinished(view, url);
            progressBar.Visibility = ViewStates.Gone;
            view.Visibility = ViewStates.Visible;
        }

    }