从 MI 设备上的 Play 商店获取 "abort Exception" 报告
Getting "abort Exception" report from Play Store on MI devices
在小米 Mi A1 (tissot_sprout)、Android 8.1 和小米 Redmi Note 5 Pro (whyred)、Android 8.1 的 google 游戏机上获取异常中止仅限设备!
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.tc.views <<<
backtrace:
#00 pc 000000000001de14 /system/lib64/libc.so (abort+104)
#01 pc 0000000000007f20 /system/lib64/liblog.so (__android_log_assert+304)
#02 pc 000000000006c318 /system/lib64/libhwui.so (android::uirenderer::renderthread::EglManager::createSurface(ANativeWindow*, bool)+320)
#03 pc 000000000006a094 /system/lib64/libhwui.so (android::uirenderer::renderthread::OpenGLPipeline::setSurface(android::Surface*, android::uirenderer::renderthread::SwapBehavior, android::uirenderer::renderthread::ColorMode)+76)
#04 pc 0000000000066e38 /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::setSurface(android::Surface*)+144)
#05 pc 000000000006f608 /system/lib64/libhwui.so (android::uirenderer::renderthread::Bridge_initialize(android::uirenderer::renderthread::initializeArgs*)+16)
#06 pc 0000000000071920 /system/lib64/libhwui.so (android::uirenderer::renderthread::MethodInvokeRenderTask::run()+24)
#07 pc 0000000000072a8c /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+340)
#08 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
#09 pc 00000000000aab64 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#10 pc 0000000000067e10 /system/lib64/libc.so (__pthread_start(void*)+36)
#11 pc 000000000001f240 /system/lib64/libc.so (__start_thread+68)
任何人都可以帮助我理解这个问题吗?
这个设备是特定的还是代码中有问题?
提前致谢。
Android 的一大优点是它是开源的。这意味着您可以查看源代码并自行调试(或至少获得一些提示)。
我 Google 搜索了 "source android uirenderer eglmanager createsurface",所有这些都来自您的堆栈跟踪。
这在 EglManager
的 createSurface()
方法中给了我 this result。
来自这一行
LOG_ALWAYS_FATAL_IF(surface == EGL_NO_SURFACE,
"Failed to create EGLSurface for window %p, eglErr = %s",
(void*) window, egl_error_str());
您可以看到有些东西无法创建表面。现在,我不知道为什么会发生这种情况,因为我不知道您的代码,但这可能会给您提示。也许您正在使用那些手机不支持的 OpenGL 纹理格式?
在小米 Mi A1 (tissot_sprout)、Android 8.1 和小米 Redmi Note 5 Pro (whyred)、Android 8.1 的 google 游戏机上获取异常中止仅限设备!
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.tc.views <<<
backtrace:
#00 pc 000000000001de14 /system/lib64/libc.so (abort+104)
#01 pc 0000000000007f20 /system/lib64/liblog.so (__android_log_assert+304)
#02 pc 000000000006c318 /system/lib64/libhwui.so (android::uirenderer::renderthread::EglManager::createSurface(ANativeWindow*, bool)+320)
#03 pc 000000000006a094 /system/lib64/libhwui.so (android::uirenderer::renderthread::OpenGLPipeline::setSurface(android::Surface*, android::uirenderer::renderthread::SwapBehavior, android::uirenderer::renderthread::ColorMode)+76)
#04 pc 0000000000066e38 /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::setSurface(android::Surface*)+144)
#05 pc 000000000006f608 /system/lib64/libhwui.so (android::uirenderer::renderthread::Bridge_initialize(android::uirenderer::renderthread::initializeArgs*)+16)
#06 pc 0000000000071920 /system/lib64/libhwui.so (android::uirenderer::renderthread::MethodInvokeRenderTask::run()+24)
#07 pc 0000000000072a8c /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+340)
#08 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
#09 pc 00000000000aab64 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#10 pc 0000000000067e10 /system/lib64/libc.so (__pthread_start(void*)+36)
#11 pc 000000000001f240 /system/lib64/libc.so (__start_thread+68)
任何人都可以帮助我理解这个问题吗?
这个设备是特定的还是代码中有问题?
提前致谢。
Android 的一大优点是它是开源的。这意味着您可以查看源代码并自行调试(或至少获得一些提示)。
我 Google 搜索了 "source android uirenderer eglmanager createsurface",所有这些都来自您的堆栈跟踪。
这在 EglManager
的 createSurface()
方法中给了我 this result。
来自这一行
LOG_ALWAYS_FATAL_IF(surface == EGL_NO_SURFACE,
"Failed to create EGLSurface for window %p, eglErr = %s",
(void*) window, egl_error_str());
您可以看到有些东西无法创建表面。现在,我不知道为什么会发生这种情况,因为我不知道您的代码,但这可能会给您提示。也许您正在使用那些手机不支持的 OpenGL 纹理格式?