Поверхность:: 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;
}
}