2012-05-29 5 views
4

Эта проблема ОЧЕНЬ специфична для HTC Flyer. Тот, который был повышен до сота или позже. Похоже, что если аппаратное ускорение включено, тогда WebView просто отображает пустое. Появится цвет фона, и вы можете прокручивать его. Вы можете даже выделить текст или ссылки на ссылки, но вы просто ничего не видите. Все это невидимо.Кто-нибудь еще видел ошибку с веб-просмотром HTC Flyer (аппаратное ускорение) или нашел исправление?

Он также регистрирует тонну следующее:

D/GLUtils(6612): GL ERROR - after drawQuad() glError (0x502)

Похоже, что ошибка с Flyer, но кто успешно используется аппаратное ускорение с этим устройством и WebView?

Update

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

Воспроизводить:

Создать две деятельности. У каждого вида деятельности может быть только WebView. Первое действие должно быть отключено аппаратным ускорением. Второй должен включить его.

В первом действии (без аппаратного ускорения) загрузите URL-адрес. Страница будет загружаться штрафом. Теперь, когда страница загрузится и отобразится, запустите второе действие с первого.

Второе действие (аппаратное ускорение) также должно загружать URL-адрес. Это приведет к ошибке. Второй вид деятельности WebView будет отображаться пустым.

также:

Как ни странно, вы можете сделать следующее, и он будет работать:

Начать деятельность с аппаратным ускорением и WebView. Загрузите URL-адрес и после его отображения запустите второе действие без аппаратного ускорения. Затем во втором действии загрузите URL-адрес, а затем после его отображения начните третье действие с аппаратным ускорением. Третье действие будет отображаться правильно.

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

Опять же, из сотен устройств, на которых работает это приложение, это происходит только на HTC Flyer.

ответ

1

Благодарим за сообщение о проблеме. Я не смог заставить его произойти в моих собственных тестах. Можете ли вы предоставить более подробную информацию о том, что вы делаете?

В моих тестах я создал простое Android-приложение с WebView, которое показывает файл index.html из своей папки с ресурсами. Я убедился в том, что аппаратное ускорение включено, как с помощью high targetSdkVersion, так и с явным установкой hardwareAccelerated to true в Android Manifest.xml. Содержимое показывается в обновленном Flyer I, на котором он тестировался.

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

Вот тестовый проект, который в настоящее время работает: https://github.com/lnanek/HWWebView

Вот AndroidManifest.xml от него:
< XML   версия = "1,0"   кодирование = "UTF-8"? >
< манифеста   XMLNS: а = "http://schemas.android.com/apk/res/android"
        пакет = "com.htc.sample.hwwebview"
        а: VersionCode = "2"
       : с versionName = "2.0"   >
        < использует-  SDK: с minSdkVersion = "3"   а: targetSdkVersion = "15"  />
        < использует разрешение-  а: имя = "android.permission.INTERNET"  />
        < приложение  : с = значок "@ вытяжке/ic_launcher"   а: метка = "@ строка/app_name"  : с hardwareAccelerated = "истинный"   >
                < активность  : с именем = «Просмотр».   а: метка = „@ строка/app_name“   >
                        < intent- фильтр >
                                < действие   а: имя = "android.intent.action.MAIN"  />
                                < Категория   a: name = "android.intent.category.Гранатомет» />
                        </Намерение фильтр >
                </активность >
        </Применение >
</манифеста >

Вот основной макет:
< XML   версия = "1.0" кодирование =   "UTF-8"? >
< WebView
        XMLNS: андроид = "http://schemas.android.com/apk/res/android"
        андроид: идентификатор = "@ + идентификатор/WebView"
        андроида: layout_width = "fill_parent"
        андроида: layout_height = "fill_parent"
       />

+0

Эй Lance, я обновил свой ответ с некоторыми дополнительными шагами, чтобы воспроизвести. – cottonBallPaws