android– 使用Oreo(8.1)在开发人员控制台中中止本机崩溃

android– 使用Oreo(8.1)在开发人员控制台中中止本机崩溃,第1张

概述在开发人员控制台中,我在中止时遇到越来越多的本机崩溃.这只发生在Android8.1设备上!有人知道回归吗?这是回溯:#00pc000000000001da4c/system/lib64/libc.so(abort+112)#01pc0000000000007f7c/system/lib64/liblog.so(__android_log_assert+312)#02pc0

在开发人员控制台中,我在中止时遇到越来越多的本机崩溃.这只发生在Android 8.1设备上!
有人知道回归吗?这是回溯:

   #00  pc 000000000001da4c  /system/lib64/libc.so (abort+112)   #01  pc 0000000000007f7c  /system/lib64/liblog.so (__androID_log_assert+312)    #02  pc 000000000006cff8  /system/lib64/libhwui.so (androID::uirenderer::renderthread::EglManager::createSurface(ANativeWindow*, bool)+324)    #03  pc 000000000006ad14  /system/lib64/libhwui.so (androID::uirenderer::renderthread::OpenGLPipeline::setSurface(androID::Surface*, androID::uirenderer::renderthread::SwapBehavior, androID::uirenderer::renderthread::colorMode)+72)    #04  pc 00000000000679ec  /system/lib64/libhwui.so (androID::uirenderer::renderthread::CanvasContext::setSurface(androID::Surface*)+144)    #05  pc 00000000000703bc  /system/lib64/libhwui.so (androID::uirenderer::renderthread::BrIDge_initialize(androID::uirenderer::renderthread::initializeArgs*)+16)    #06  pc 00000000000726c4  /system/lib64/libhwui.so (androID::uirenderer::renderthread::MethodInvokeRenderTask::run()+24)    #07  pc 00000000000738d8  /system/lib64/libhwui.so (androID::uirenderer::renderthread::RenderThread::threadLoop()+336)    #08  pc 0000000000011504  /system/lib64/libutils.so (androID::Thread::_threadLoop(voID*)+264)    #09  pc 00000000000a9830  /system/lib64/libandroID_runtime.so (androID::AndroIDRuntime::javaThreadShell(voID*)+140)    #10  pc 0000000000069c94  /system/lib64/libc.so (__pthread_start(voID*)+36)    #11  pc 000000000001eeec  /system/lib64/libc.so (__start_thread+68)

更新:
我想这个问题只能由Google自己解决:(问题在这里跟踪https://issuetracker.google.com/issues/70259031
与此同时,有人可以重现问题或至少解释问题何时发生?这有助于找到解决方法!

解决方法:

正在使用Surface的提示为OpenGL ES和GLSurfaceView – 这扩展了VIEw.

一个可能的解决方法可能是禁用视图的硬件加速,这会导致它在AndroID 8.1和9.0上崩溃(如libhwui.so提示) – 因为即使它被修复,任何未更新的设备仍将继续崩溃.这可以按视图完成(参见documentation):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {    mSurface.setLayerType(VIEw.LAYER_TYPE_SOFTWARE, null);}

当然,这会导致次优性能;但仍然比崩溃更好.

总结

以上是内存溢出为你收集整理的android – 使用Oreo(8.1)在开发人员控制台中中止本机崩溃全部内容,希望文章能够帮你解决android – 使用Oreo(8.1)在开发人员控制台中中止本机崩溃所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存