Android WebView randomly not responding to touch events

  • Replies:0
  • OpenNot stickiedUnanswered
  • Forum posts: 1

Nov 30, 2015 4:30:17 PM via Website

Hello everybody.
I have an issue with my Android Web Application.

The application is installed on a Tablet (LGV700 - 4.4.2) that runs only for that purpose (powered 24/7).

The application is a wrapper to a web application with a little extra functionality, loaded from a remote url (The webview is created dynamically in the code).

The problem is that the application randomly freezes/stops reacting to most touch events (usually after a long period of uptime) and it continuous until the application is restarted.

Checking the app with a profiler shows that memory usage is high, however the GC seems to be working fine, cleaning all the not used memory when it's about to reach the memory limit.

I tried adding largeHeap and hardwareAccelerated property to the manifest, but it doesn't seem to help.

I'm not sure it's the only problem, but sometimes the app is getting force closed, and the following error is thrown to logcat:

11-30 13:01:54.477  28591-28652/********* W/Adreno-EGLSUB﹕ <DequeueBuffer:736>: dequeue native buffer fail: Unknown error 2147483646, buffer=0x0, handle=0x0
11-30 13:01:54.487  28591-28652/********* W/Adreno-ES20﹕ <core_glFlush:52>: GL_OUT_OF_MEMORY
11-30 13:01:54.487  28591-28652/********* W/Adreno-EGLSUB﹕ <DequeueBuffer:736>: dequeue native buffer fail: Function not implemented, buffer=0x0, handle=0x0
11-30 13:01:54.487  28591-28652/********* E/chromium﹕ [ERROR:gles2_cmd_decoder.cc(2123)] [GroupMarkerNotSet(crbug.com/242999)!:549845A5]GL ERROR :GL_OUT_OF_MEMORY : GLES2DecoderImpl::PrepareTexturesForRender: <- error from previous GL command
11-30 13:01:54.487  28591-28652/********* E/chromium﹕ [ERROR:gles2_cmd_decoder.cc(4422)] Error: 5 for Command kDrawElements
11-30 13:01:54.487  28591-28652/********* W/Adreno-EGLSUB﹕ <DequeueBuffer:736>: dequeue native buffer fail: Function not implemented, buffer=0x0, handle=0x0
11-30 13:01:54.487  28591-28652/********* W/Adreno-EGL﹕ <qeglDrvAPI_eglSwapBuffers:3702>: EGL_BAD_SURFACE
11-30 13:01:54.487  28591-28652/********* W/OpenGLRenderer﹕ swapBuffers encountered EGL_BAD_SURFACE on 0xa542ff80, halting rendering...
11-30 13:01:54.777  28591-28652/********* W/google-breakpad﹕ ### ### ### ### ### ### ### ### ### ### ### ### ###
11-30 13:01:54.777  28591-28652/********* W/google-breakpad﹕ Chrome build fingerprint:
11-30 13:01:54.777  28591-28652/********* W/google-breakpad﹕ 1.0
11-30 13:01:54.777  28591-28652/********* W/google-breakpad﹕ 1
11-30 13:01:54.777  28591-28652/********* W/google-breakpad﹕ 45012863-7d3b-4c30-8ccf-e65394c57d85
11-30 13:01:54.777  28591-28652/********* W/google-breakpad﹕ ### ### ### ### ### ### ### ### ### ### ### ### ###
11-30 13:01:54.777  28591-28652/********* A/libc﹕ Fatal signal 11 (SIGSEGV), code 1, fault addr 0x54 in tid 28652 (RenderThread)

which looks like this problem: code.google.com/p/chromium/issues/detail?id=437017, but it seems to be fixed.

When the application detects that internet connection was lost, it reloads the webview by using the loadUrl function with original url.

Also worth mentioning is that I use "ANR-WatchDog" lib to detect Application Not Responding errors (checks if the main thread is not responding for more that 5 seconds), However it's silent when the issue occurs.

Any ideas?