从 MI 设备上的 Play 商店获取“中止异常”报告

Posted

技术标签:

【中文标题】从 MI 设备上的 Play 商店获取“中止异常”报告【英文标题】:Getting "abort Exception" report from Play Store on MI devices 【发布时间】:2019-01-14 12:20:00 【问题描述】:

在小米米 A1 (tissot_sprout)、android 8.1 和小米红米 Note 5 Pro (whyred)、Android 8.1 设备的谷歌播放控制台上出现异常终止!

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
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)  

谁能帮助我理解这个问题? 这个设备是特定的还是代码中的问题? 提前致谢。

【问题讨论】:

【参考方案1】:

Android 的一大优点是它是开源的。这意味着您可以查看源代码并自己调试(或至少获得一些提示)。

我在 Google 上搜索了 "source android uirenderer eglmanager createsurface",所有这些都来自您的堆栈跟踪。

这在EglManagercreateSurface() 方法中给了我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 纹理格式?

【讨论】:

感谢 Nick 给我的见解。

以上是关于从 MI 设备上的 Play 商店获取“中止异常”报告的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Play 商店 API 获取数据

如果隐藏Google Play商店,则Google Play服务也不可用

play商店是啥、?

应用程序未从 Play 商店安装在某些设备中

google play商店怎么使用

过滤以防止三星 Galaxy 相机从 Play 商店访问应用程序