Мы видели отчеты о сбоях, поступающие в Google Play, которые относятся к Samsung S9 (starqlesq) и S9 + (star2qlesq), оба работают под управлением Android 8.0.0:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
backtrace:
#00 pc 0000000000a51278 /vendor/lib64/libllvm-glnext.so (_ZN13ShaderObjects17loadProgramBinaryEP15CompilerContextPvmP23QGLC_LINKPROGRAM_RESULT+1396)
#01 pc 000000000099b500 /vendor/lib64/libllvm-glnext.so (_ZN15CompilerContext17loadProgramBinaryEPvmP23QGLC_LINKPROGRAM_RESULT+160)
#02 pc 0000000000a6e110 /vendor/lib64/libllvm-glnext.so (_Z21QGLCLoadProgramBinaryPvS_mP23QGLC_LINKPROGRAM_RESULT+88)
#03 pc 00000000001a501c /vendor/lib64/egl/libGLESv2_adreno.so (_ZN17EsxShaderCompiler21LoadProgramBinaryBlobEP10EsxContextP10EsxProgramPKvmP10EsxInfoLog+256)
Глядя на приведенную выше трассировку стека, кажется, что сбой произошел в системном коде OpenGL.
Это странно, потому что у нас есть интегрированное решение для отчетов о сбоях (Microsoft App Center SDK), а другие отчеты о сбоях отправляются в Центр приложений.
Наше приложение интенсивно использует WebView, который, насколько я понимаю, теперь использует Chrome, работающий в отдельном процессе.
Поэтому мои вопросы:
WebView?Мы не можем воспроизвести проблему в версии S9 / S9 + для региона EMEA, но знаем, что это происходит с кем-то в США, возможно, с версией S9 / S9 + для США, которая имеет совершенно другое ядро процессора.
@LUMICYAN использует ли ваше приложение WebView
Да, он широко использует веб-просмотр.
@LUMICYAN Мне интересно, может ли отключение аппаратного ускорения решить проблему на этих устройствах через WebView.setLayerType(LAYER_TYPE_SOFTWARE)? Очевидно, это будет компромисс с производительностью, но предпочтительнее, чем сбой.
Отключение аппаратного ускорения - большое изменение, особенно когда приложение находится в рабочей среде. И мы не знаем, каковы другие последствия. Я посмотрел на форум разработчиков samsung и qualcomm, чтобы увидеть упоминания об этом сбое. Я не нашел подходящих сообщений.
Согласен - вся ситуация далека от идеала, но я не уверен, какие еще варианты доступны нам на данный момент. Я бы рекомендовал отключить аппаратное ускорение только для этих конкретных устройств.
@LUMICYAN проработали ли вы какие-либо другие факторы при воспроизведении этой проблемы? Я не могу воспроизвести, используя US S9 или S9 + через Sigos / Device Anywhere.
Мы также не можем воспроизвести сбой на тестовом устройстве. Но я вижу, что на консоли Google Play появляется больше сообщений о сбоях.
По мере поступления новых данных становится ясно, что эта проблема затрагивает только некоторые устройства starqltesq и star2qltesq. Мы знаем, что одно из устройств, на которых возникла эта проблема, имеет немного другой номер сборки и было бесплатным устройством, предоставленным непосредственно Samsung. Наша текущая рабочая теория состоит в том, что эти проблемные дополнительные устройства являются предварительными производственными или содержат предварительные сборки программного обеспечения. Кто-нибудь может подтвердить здесь общность?
Мы наблюдаем сбои на следующих устройствах. Galaxy S9 + (star2qltesq) (16 сбоев) Galaxy S9 (starqltesq) (9 сбоев) Galaxy S9 + (star2qlteue) (1 сбой)
Выглядит вполне наглядно. Могу я узнать, как вы узнали, что это бесплатные устройства.
Мы получили прямой отчет об ошибке от клиента нашей организации, у которого случайно оказалось одно из этих проблемных устройств. К сожалению, я не нахожусь в прямом контакте, но мы попытаемся заставить их загружать APK с отключенным аппаратным ускорением на WebView, чтобы посмотреть, исправит ли это это. Сообщу, когда узнаю больше.
Мы наблюдаем эту проблему по крайней мере на 5 устройствах S9: star2qltesq, starqltesq, star2qlteue, starqlteue, большинство первых двух и 520 сбоев для Other.
У кого-нибудь есть ясность в том, почему об этом сбое не сообщается в Центр приложений? Мы также пользуемся App Center, и об этом тоже не сообщалось.
Что и @GaryBak, та же проблема, те же устройства. 2 месяца назад я отключил рекламу Fyber's Mediation Ads на вышеупомянутых устройствах, чтобы решить эту проблему. Проверял еще раз на прошлой неделе, но все равно бывает. Итак, снова с рекламой.
По-прежнему возникает та же самая проблема (приложения Xamarin Platform). Хотел бы исправить это :(
Кто-нибудь когда-нибудь нашел для этого правильное решение? Я тоже сталкиваюсь с этой проблемой, за исключением FirebaseUI и ошибки рисования холста только на некоторых устройствах Samsung. (Не явно веб-просмотр)
Я так и не нашел лучшего решения - я подозреваю, что основная причина - ошибка драйвера OpenGLES, которая запускается аппаратным ускорением для определенных команд. Я написал на форуме разработчиков Samsung, но так и не получил ответа: developer.samsung.com/forum/board/thread/…
@ Mr.Drew, вы можете получить подсказки для исправления этой проблемы в libgdx: github.com/libgdx/libgdx/issues/3790
Хм, у меня теперь немного другая проблема, когда я смог получить логи сбоев. Те же устройства дают сбой при рисовании одного из моих растровых ресурсов, а не веб-просмотра или сортировки. Но похоже, что это могло быть связано с графическим драйвером, чтобы он был только в этом подмножестве устройств.
@ Мистер Дрю согласился - путь к возникновению проблемы другой, но я считаю, что основная причина, вероятно, аналогична. Мне было бы искренне интересно узнать, как вам удастся решить эту проблему - они могут даже быть потенциальным исправлением WebKit, которое можно извлечь из этого.
Итак, сейчас 2020 год, кто-нибудь нашел решение для этого?
Отключение аппаратного ускорения теперь подтверждено как способ решения проблемы на следующих проблемных устройствах:
val product = Build.PRODUCT
val s9ProductsThatNeedWorkaround = arrayOf("starqltesq", "star2qltesq", "starqlteue", "star2qlteue")
if (s9ProductsThatNeedWorkaround.contains(product)) {
WebView.setLayerType(LAYER_TYPE_SOFTWARE)
}
Однако при отображении веб-контента могут быть некоторые косметические аномалии.
Вы отключили аппаратное ускорение только для затронутых устройств или для всех устройств? Если вы нацелены только на тех, у кого есть эта проблема, не могли бы вы включить в свой ответ образец кода для эффективного нацеливания на устройства?
Спасибо! Очень полезно.
Отключение приложения Chrome помогло мне воспроизвести эту проблему (это приведет к использованию другой версии WebView). Похоже на идеальный шторм: 1) версия системы Android WebView, 2) версия обновления Samsung и 3) отображение контента в WebView. Применение обходного пути Эндрю предотвратило сбой в моем случае.
@AdamTerlson, где я могу отключить аппаратное ускорение в реактивном приложении
Мы также видим аналогичные сбои в игровом магазине, и все сбои сообщаются для устройств Samsung Galaxy S9 и S9 +. И сбой кажется спорадическим. Это происходит не на всех устройствах S9 и S9 +. Мы подозреваем, что виноват новый драйвер графического процессора телефона. На данный момент мы не знаем, как с этим справиться.