Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

App crashes when displaying an advertisement on OnePlus 6

We've published an app in the Google Play store which has the possibility to show advertisements from Google DoubleClick for Publishers.

On certain advertisements the app crashes on the OnePlus 6. We do not get a stacktrace in our crash reporting, but do receive error logs in Google Play console as shown below. We are certain that it is being caused by ads, since it only appears on version which has ads. Also, the crash appears during the time the ad is being rendered.

OnePlus 6 crash

The backtrace in Google Play shows the following log for every crash:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.myapp.app <<<

backtrace:
  #00  pc 000000000076eb50  /vendor/lib/libllvm-glnext.so (ShaderObjects::loadProgramBinary(CompilerContext*, void*, unsigned int, QGLC_LINKPROGRAM_RESULT*)+855)
  #01  pc 00000000006ddba5  /vendor/lib/libllvm-glnext.so (CompilerContext::loadProgramBinary(void*, unsigned int, QGLC_LINKPROGRAM_RESULT*)+108)
  #02  pc 000000000077fb73  /vendor/lib/libllvm-glnext.so (QGLCLoadProgramBinary(void*, void*, unsigned int, QGLC_LINKPROGRAM_RESULT*)+54)
  #03  pc 00000000001612b1  /vendor/lib/egl/libGLESv2_adreno.so (EsxShaderCompiler::LoadProgramBinaryBlob(EsxContext*, EsxProgram*, void const*, unsigned int, EsxInfoLog*)+164)
  #04  pc 0000000000140191  /vendor/lib/egl/libGLESv2_adreno.so (EsxProgram::LoadProgramBinary(EsxContext*, unsigned int, void const*, int)+186)
  #05  pc 00000000000aff67  /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlProgramBinary(unsigned int, unsigned int, void const*, int)+230)
  #06  pc 00000000000991d9  /vendor/lib/egl/libGLESv2_adreno.so (glProgramBinary+40)
  #07  pc 0000000001748bff  /data/app/com.android.chrome-2SPtcpkG5Ik-UldbIaNfyw==/base.apk

Locally we managed to reproduce this and got the following trace: https://gist.github.com/Sammekl/66fc018f81a04d21717440924a206bdb

Does anyone know how to either fix or capture this crash? it's impacting a really large userbase right now.

like image 371
Sammekl Avatar asked Jun 07 '18 08:06

Sammekl


People also ask

Why does my app keep closing?

This usually occurs when your Wi-Fi or cellular data is slow or unstable, causing apps to malfunction. Another reason for Android apps crashing can be a lack of storage space in your device. This can occur when you overload your device's internal memory with heavy apps.

Does Google Search app keep crashing on OnePlus phones?

Issues like crashes and bugs on Google apps is a rare thing. However, several OnePlus smartphones users are reporting an issue related to the Google app on Android. Apparently, the Google Search app keeps crashing and closes itself after opening or while searching on OnePlus devices.

How to fix OnePlus 6 crashing and lag issues?

Here’s what to do if you run into lags, freezes, or crashes on the OnePlus 6: Clear cache from the app which freezes the most. Disable apps from working in the background. Greenify should serve the purpose. Update your device for a possible update fix. Reset app preferences. Wipe the cache partition. Reset your device to factory settings.

Why am I not getting notifications on my OnePlus 6?

Go to Settings > Apps and find the app with the problem. Tap on the Notifications and Permissions sections and make sure that the right settings are enabled. Some users have found this problem is caused by the OnePlus 6’s aggressive battery optimizations.

Why is my OnePlus phone crashing when I turn it on?

This has since been confirmed by a OnePlus Staff member who came out to respond to the countless user complaints on this issue. In his response, he clarifies saying: “This has nothing to do with the OS or OnePlus. The bug is caused by a recent update by Google to Android System Webview. It seems like uninstalling it fixes the issue.”


1 Answers

I found the problem. It was caused by installing this app on top of the previous app. The previous app used some form of GPU caching in webviews which interferes with the new app.

The GPU caching was located in the internal storage location of the app:

data/data/com.sammekl.myapp/app_webview/GPUCache

I resolved this issue by recursively removing all files in this directory by using the Kotlin File extension function called deleteRecursively() during first time startup of the new app.

val gpuCache = File("${context.filesDir.parent}/app_webview/GPUCache")
gpuCache.deleteRecursively()
like image 182
Sammekl Avatar answered Oct 08 '22 23:10

Sammekl