问题描述
我使用 React Native 构建了一个跨平台应用程序,并且发现了该应用程序的 Android 版本上的一个错误。它只发生在 Android 中,而不是 iOS 中,并且在尝试使用 react 导航的 navigation.navigate() 功能时发生。我所要做的就是堆栈跟踪,但我不明白如何解释它。
这是堆栈跟踪:
pid: 0,tid: 0 >>> com.nothing.nothingapp <<<
backtrace:
#00 pc 000000000039fe88 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::GLFunctorDrawable::onDraw(SkCanvas*)+984)
#00 pc 00000000004410f0 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*,SkMatrix const*)+88)
#00 pc 000000000070d684 /system/lib64/libhwui.so (SkGpuDevice::drawDrawable(SkDrawable*,SkMatrix const*,SkCanvas*)+300)
#00 pc 00000000003590d0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1252)
#00 pc 000000000035a1c4 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
#00 pc 00000000004410f0 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*,SkMatrix const*)+88)
#00 pc 0000000000359124 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1336)
#00 pc 000000000035a1c4 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
#00 pc 00000000004410f0 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*,SkMatrix const*)+88)
#00 pc 00000000003590fc /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1296)
#00 pc 000000000035a1c4 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
#00 pc 00000000004410f0 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*,SkMatrix const*)+88)
#00 pc 00000000003590fc /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+1296)
#00 pc 000000000035a1c4 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*) const+200)
#00 pc 00000000003a59a8 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderLayersImpl(android::uirenderer::LayerUpdateQueue const&,bool)+688)
#00 pc 00000000003a7110 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderFrame(android::uirenderer::LayerUpdateQueue const&,SkRect const&,std::__1::vector<android::sp<android::uirenderer::RenderNode>,std::__1::allocator<android::sp<android::uirenderer::RenderNode> > > const&,bool,android::uirenderer::Rect const&,sk_sp<SkSurface>,SkMatrix const&)+124)
#00 pc 00000000003a45b4 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::draw(android::uirenderer::renderthread::Frame const&,android::uirenderer::LightGeometry const&,android::uirenderer::LayerUpdateQueue*,android::uirenderer::LightInfo const&,android::uirenderer::Frameinfovisualizer*)+416)
#00 pc 00000000003ad224 /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+1080)
#00 pc 00000000003af460 /system/lib64/libhwui.so (_ZNSt3__110__function6__funcIZN7Android10uirenderer12renderthread13DrawFraMetask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+524)
#00 pc 000000000039d928 /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+208)
#00 pc 00000000003bfb44 /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+88)
#00 pc 000000000001553c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+320)
#00 pc 0000000000014db0 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+408)
#00 pc 00000000000b61f4 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 0000000000050e24 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
解决方法
当您进入 android studio 中的堆栈跟踪时,错误将显示在红线中,并且会有一些错误代码和名称以及错误所在的行号。因此,您可以搜索该错误或转到该行并找出导致错误的原因。 在您的情况下,我认为错误在于渲染图层或框架