AndroidFastScroll
AndroidFastScroll copied to clipboard
在 Android 10 及 Android 11 上会闪退?
在 Android 10 及 Android 11 上会闪退,闪退日志很奇怪,说是“JNI DETECTED ERROR IN APPLICATION ... java.lang.IllegalStateException: Unable to create layer for View ... ”,分析很久也找不出原因,最后去掉FastScroll的调用才不闪退。
使用这个方案在 Android 10 及 Android 11 上是正常的:https://github.com/Mixiaoxiao/FastScroll-Everywhere
+1,曾经也遇到这个问题。
请问机型是什么?以及样例程序也会崩溃吗?
请问机型是什么?以及样例程序也会崩溃吗?
试过AS自带模拟器、夜深模拟器、ViVo x27,Android 10+都会崩溃,用法1照搬你的例子直接使用FastScrollWebView,用法2是用FastScrollScrollView嵌套TextView。
<me.zhanghai.android.fastscroll.FastScrollScrollView
android:id="@+id/text_reader_scroller"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/text_reader_progress"
android:fillViewport="true"
android:scrollbars="none">
<TextView
android:id="@+id/text_reader_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="start|top"
android:padding="20dp"
android:scrollbars="none"
android:textColor="@android:color/black"
android:textIsSelectable="true" />
</me.zhanghai.android.fastscroll.FastScrollScrollView>
FastScrollScrollView scrollView = findViewById(R.id.text_reader_scroller);
Drawable drawable = getResources().getDrawable(R.drawable.fast_scrolling_thumb);
new FastScrollerBuilder(scrollView)
.setTrackDrawable(new ColorDrawable(Color.TRANSPARENT))
.setThumbDrawable(DrawableUtils.createTint(drawable, 0xff33b5e5))
.build();
在 Pixel 4 XL Android 11 上运行 FastScroll Sample 一切正常,FastScrollScrollView
、FastScrollNestedScrollView
和FastScrollWebView
都没有发生崩溃。可能和你的具体代码有关。你能使用样例程序来重现这个问题吗?
搜索了一下这个错误消息,和 Transition、过大的 wrap_content、硬件加速等都可能有关系。你可以看一看以下链接:
- https://stackoverflow.com/questions/43748222/java-lang-illegalstateexception-unable-to-create-layer-for-v
- https://stackoverflow.com/questions/63792063/java-lang-illegalstateexception-unable-to-create-layer-for-recyclerview
- https://www.codeleading.com/article/77423991167/
在 Pixel 4 XL Android 11 上运行 FastScroll Sample 一切正常,
FastScrollScrollView
、FastScrollNestedScrollView
和FastScrollWebView
都没有发生崩溃。可能和你的具体代码有关。你能使用样例程序来重现这个问题吗?搜索了一下这个错误消息,和 Transition、过大的 wrap_content、硬件加速等都可能有关系。你可以看一看以下链接:
- https://stackoverflow.com/questions/43748222/java-lang-illegalstateexception-unable-to-create-layer-for-v
- https://stackoverflow.com/questions/63792063/java-lang-illegalstateexception-unable-to-create-layer-for-recyclerview
- https://www.codeleading.com/article/77423991167/
可能是,我使用了overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
在 Pixel 4 XL Android 11 上运行 FastScroll Sample 一切正常,
FastScrollScrollView
、FastScrollNestedScrollView
和FastScrollWebView
都没有发生崩溃。可能和你的具体代码有关。你能使用样例程序来重现这个问题吗? 搜索了一下这个错误消息,和 Transition、过大的 wrap_content、硬件加速等都可能有关系。你可以看一看以下链接:
- https://stackoverflow.com/questions/43748222/java-lang-illegalstateexception-unable-to-create-layer-for-v
- https://stackoverflow.com/questions/63792063/java-lang-illegalstateexception-unable-to-create-layer-for-recyclerview
- https://www.codeleading.com/article/77423991167/
可能是,我使用了
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
然而去掉overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
的调用闪退还是复现:
2020-10-10 10:49:40.743 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception java.lang.IllegalStateException: Unable to create layer for View, size 0x1600 max size 8192 color type 4 has context 1
java_vm_ext.cc:577] (Throwable with empty stack trace)
java_vm_ext.cc:577]
java_vm_ext.cc:577] in call to CallVoidMethodV
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] Runtime aborting...
runtime.cc:655] Dumping all threads without mutator lock held
runtime.cc:655] All threads:
runtime.cc:655] DALVIK THREADS (27):
runtime.cc:655] "Jit thread pool worker thread 0" prio=5 tid=10 Runnable
runtime.cc:655] | group="" sCount=0 dsCount=0 flags=0 obj=0x12ec0390 self=0xe39ce010
runtime.cc:655] | sysTid=23626 nice=0 cgrp=top-app sched=0/0 handle=0xc3cacd60
runtime.cc:655] | state=R schedstat=( 750082086 437787770 561 ) utm=6 stm=68 core=2 HZ=100
runtime.cc:655] | stack=0xc3bae000-0xc3bb0000 stackSize=1023KB
runtime.cc:655] | held mutexes= "mutator lock"(shared held)
runtime.cc:655] native: #00 pc 00542d7e /apex/com.android.art/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+110)
runtime.cc:655] native: #01 pc 006a0877 /apex/com.android.art/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+1015)
runtime.cc:655] native: #02 pc 0069a151 /apex/com.android.art/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+65)
runtime.cc:655] native: #03 pc 006c6194 /apex/com.android.art/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+1172)
runtime.cc:655] native: #04 pc 006a1bdb /apex/com.android.art/lib/libart.so (art::Thread::RunCheckpointFunction()+187)
runtime.cc:655] native: #05 pc 003b71df /apex/com.android.art/lib/libart.so (art::jit::JitCompileTask::Run(art::Thread*)+1423)
runtime.cc:655] native: #06 pc 006c73ab /apex/com.android.art/lib/libart.so (art::ThreadPoolWorker::Run()+107)
runtime.cc:655] native: #07 pc 006c6e7d /apex/com.android.art/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+269)
runtime.cc:655] native: #08 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #09 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "RenderThread" prio=10 tid=3 Runnable
runtime.cc:655] | group="" sCount=0 dsCount=0 flags=0 obj=0x12ec0d08 self=0xe39d5e10
runtime.cc:655] | sysTid=23724 nice=-10 cgrp=top-app sched=0/0 handle=0xc27fc1e0
runtime.cc:655] | state=R schedstat=( 4051810606 1168923001 1907 ) utm=8 stm=396 core=3 HZ=100
runtime.cc:655] | stack=0xc2701000-0xc2703000 stackSize=1008KB
runtime.cc:655] | held mutexes= "abort lock" "mutator lock"(shared held)
runtime.cc:655] native: #00 pc 00542d7e /apex/com.android.art/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+110)
runtime.cc:655] native: #01 pc 006a0877 /apex/com.android.art/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+1015)
runtime.cc:655] native: #02 pc 0069a151 /apex/com.android.art/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+65)
runtime.cc:655] native: #03 pc 006c6194 /apex/com.android.art/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+1172)
runtime.cc:655] native: #04 pc 006bf246 /apex/com.android.art/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+630)
runtime.cc:655] native: #05 pc 006be1ae /apex/com.android.art/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool)+2446)
runtime.cc:655] native: #06 pc 0065225d /apex/com.android.art/lib/libart.so (art::AbortState::DumpAllThreads(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*) const+445)
runtime.cc:655] native: #07 pc 0063982f /apex/com.android.art/lib/libart.so (art::Runtime::Abort(char const*)+1967)
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] native: #08 pc 00025a23 /apex/com.android.art/lib/libartbase.so (std::__1::__function::__func<void (*)(char const*), std::__1::allocator<void (*)(char const*)>, void (char const*)>::operator()(char const*&&)+35)
runtime.cc:655] native: #09 pc 0001588f /system/lib/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+79)
runtime.cc:655] native: #10 pc 00006291 /system/lib/liblog.so (__android_log_call_aborter+33)
runtime.cc:655] native: #11 pc 00014d14 /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+436)
runtime.cc:655] native: #12 pc 00405db0 /apex/com.android.art/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+2912)
runtime.cc:655] native: #13 pc 00405e44 /apex/com.android.art/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+116)
runtime.cc:655] native: #14 pc 003f60b3 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+67)
runtime.cc:655] native: #15 pc 003f4c1d /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+3837)
runtime.cc:655] native: #16 pc 003f34c9 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+969)
runtime.cc:655] native: #17 pc 003f9212 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::CheckJNI::CheckCallArgs(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck&, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, art::InvokeType, art::(anonymous namespace)::VarArgs const*)+306)
runtime.cc:655] native: #18 pc 003f82d1 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, char*, art::Primitive::Type, art::InvokeType)+865)
runtime.cc:655] native: #19 pc 003e3e79 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, char*)+73)
runtime.cc:655] native: #20 pc 001d2dfe /system/lib/libhwui.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+62)
runtime.cc:655] native: #21 pc 0023b7ec /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7androidL54android_view_ThreadedRenderer_setFrameCompleteCallbackEP7_JNIEnvP8_jobjectxS6_E3$_2NS_9allocatorIS7_EEFvxEEclEOx$78790a34cc3fbcbe13dc6089df1d560d+156)
runtime.cc:655] native: #22 pc 002584a0 /system/lib/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+2672)
runtime.cc:655] native: #23 pc 0025ab6f /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+767)
runtime.cc:655] native: #24 pc 0024543d /system/lib/libhwui.so (android::uirenderer::WorkQueue::process()+285)
runtime.cc:655] native: #25 pc 0026cacf /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+127)
runtime.cc:655] native: #26 pc 00015116 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
runtime.cc:655] native: #27 pc 000147d9 /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
runtime.cc:655] native: #28 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #29 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "main" prio=10 tid=1 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x70f543f0 self=0xe39c0010
runtime.cc:655] | sysTid=23612 nice=-10 cgrp=top-app sched=0/0 handle=0xf1ef8478
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] | state=S schedstat=( 1590868121 675155710 1258 ) utm=52 stm=106 core=1 HZ=100
runtime.cc:655] | stack=0xff54f000-0xff551000 stackSize=8192KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 0007725e /apex/com.android.runtime/lib/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+142)
runtime.cc:655] native: #03 pc 000e5b1e /apex/com.android.runtime/lib/bionic/libc.so (pthread_cond_wait+62)
runtime.cc:655] native: #04 pc 000569cf /system/lib/libc++.so (std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)+47)
runtime.cc:655] native: #05 pc 0005999f /system/lib/libc++.so (std::__1::__assoc_sub_state::copy()+95)
runtime.cc:655] native: #06 pc 00059cca /system/lib/libc++.so (std::__1::future<void>::get()+42)
runtime.cc:655] native: #07 pc 00262081 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderProxy::setStopped(bool)+225)
runtime.cc:655] native: #08 pc 00238f6a /system/lib/libhwui.so (android::android_view_ThreadedRenderer_setStopped(_JNIEnv*, _jobject*, long long, unsigned char)+42)
runtime.cc:655] at android.graphics.HardwareRenderer.nSetStopped(Native method)
runtime.cc:655] at android.graphics.HardwareRenderer.setStopped(HardwareRenderer.java:474)
runtime.cc:655] at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3863)
runtime.cc:655] at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3099)
runtime.cc:655] at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952)
runtime.cc:655] at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171)
runtime.cc:655] at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
runtime.cc:655] at android.view.Choreographer.doCallbacks(Choreographer.java:796)
runtime.cc:655] at android.view.Choreographer.doFrame(Choreographer.java:731)
runtime.cc:655] at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
runtime.cc:655] at android.os.Handler.handleCallback(Handler.java:938)
runtime.cc:655] at android.os.Handler.dispatchMessage(Handler.java:99)
runtime.cc:655] at android.os.Looper.loop(Looper.java:223)
runtime.cc:655] at android.app.ActivityThread.main(ActivityThread.java:7656)
runtime.cc:655] at java.lang.reflect.Method.invoke(Native method)
runtime.cc:655] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
runtime.cc:655] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
runtime.cc:655]
runtime.cc:655] "Signal Catcher" prio=10 tid=4 WaitingInMainSignalCatcherLoop
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0228 self=0xe39cb610
runtime.cc:655] | sysTid=23622 nice=-20 cgrp=top-app sched=0/0 handle=0xd8c2a1e0
runtime.cc:655] | state=S schedstat=( 541211 7837832 2 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xd8b2f000-0xd8b31000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000ce811 /apex/com.android.runtime/lib/bionic/libc.so (__rt_sigtimedwait+33)
runtime.cc:655] native: #02 pc 00086c55 /apex/com.android.runtime/lib/bionic/libc.so (sigwait+69)
runtime.cc:655] native: #03 pc 00665efd /apex/com.android.art/lib/libart.so (art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+461)
runtime.cc:655] native: #04 pc 006648df /apex/com.android.art/lib/libart.so (art::SignalCatcher::Run(void*)+479)
runtime.cc:655] native: #05 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #06 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] "perfetto_hprof_listener" prio=10 tid=6 Native (still starting up)
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x0 self=0xe39c5410
runtime.cc:655] | sysTid=23623 nice=-20 cgrp=top-app sched=0/0 handle=0xd8b291e0
runtime.cc:655] | state=S schedstat=( 627205 3385498 6 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:655] | stack=0xd8a2e000-0xd8a30000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000ccf8c /apex/com.android.runtime/lib/bionic/libc.so (read+28)
runtime.cc:655] native: #02 pc 0001aca2 /apex/com.android.art/lib/libperfetto_hprof.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ArtPlugin_Initialize::$_29> >(void*)+306)
runtime.cc:655] native: #03 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #04 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "ADB-JDWP Connection Control Thread" prio=10 tid=8 WaitingInMainDebuggerLoop
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec02a0 self=0xe39ca810
runtime.cc:655] | sysTid=23624 nice=-20 cgrp=top-app sched=0/0 handle=0xd8a281e0
runtime.cc:655] | state=S schedstat=( 3111552 3908553 13 ) utm=0 stm=0 core=1 HZ=100
runtime.cc:655] | stack=0xd892d000-0xd892f000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000cf486 /apex/com.android.runtime/lib/bionic/libc.so (__ppoll+38)
runtime.cc:655] native: #02 pc 00083979 /apex/com.android.runtime/lib/bionic/libc.so (poll+105)
runtime.cc:655] native: #03 pc 0000a493 /apex/com.android.art/lib/libadbconnection.so (adbconnection::AdbConnectionState::RunPollLoop(art::Thread*)+1171)
runtime.cc:655] native: #04 pc 000086d2 /apex/com.android.art/lib/libadbconnection.so (adbconnection::CallbackFunction(void*)+1666)
runtime.cc:655] native: #05 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #06 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "FinalizerDaemon" prio=5 tid=9 Waiting
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0318 self=0xe39cc410
runtime.cc:655] | sysTid=23629 nice=4 cgrp=top-app sched=0/0 handle=0xc39961e0
runtime.cc:655] | state=S schedstat=( 3182278 3550411 11 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xc3893000-0xc3895000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 001d82ec /apex/com.android.art/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+108)
runtime.cc:655] native: #03 pc 001d8273 /apex/com.android.art/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+35)
runtime.cc:655] native: #04 pc 0053d3b7 /apex/com.android.art/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+599)
runtime.cc:655] native: #05 pc 0053f04a /apex/com.android.art/lib/libart.so (art::Monitor::Wait(art::Thread*, art::ObjPtr<art::mirror::Object>, long long, int, bool, art::ThreadState)+282)
runtime.cc:655] native: #06 pc 0056b9d0 /apex/com.android.art/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+96)
runtime.cc:655] at java.lang.Object.wait(Native method)
runtime.cc:655] - waiting on <0x05742aa3> (a java.lang.Object)
runtime.cc:655] at java.lang.Object.wait(Object.java:442)
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190)
runtime.cc:655] - locked <0x05742aa3> (a java.lang.Object)
runtime.cc:655] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211)
runtime.cc:655] at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:273)
runtime.cc:655] at java.lang.Daemons$Daemon.run(Daemons.java:139)
runtime.cc:655] at java.lang.Thread.run(Thread.java:923)
runtime.cc:655]
runtime.cc:655] "ReferenceQueueDaemon" prio=5 tid=11 Waiting
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0408 self=0xe39c7e10
runtime.cc:655] | sysTid=23628 nice=4 cgrp=top-app sched=0/0 handle=0xc3a9f1e0
runtime.cc:655] | state=S schedstat=( 7290422 1641347 11 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xc399c000-0xc399e000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 001d82ec /apex/com.android.art/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+108)
runtime.cc:655] native: #03 pc 001d8273 /apex/com.android.art/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+35)
runtime.cc:655] native: #04 pc 0053d3b7 /apex/com.android.art/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+599)
runtime.cc:655] native: #05 pc 0053f04a /apex/com.android.art/lib/libart.so (art::Monitor::Wait(art::Thread*, art::ObjPtr<art::mirror::Object>, long long, int, bool, art::ThreadState)+282)
runtime.cc:655] native: #06 pc 0056b9d0 /apex/com.android.art/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+96)
runtime.cc:655] at java.lang.Object.wait(Native method)
runtime.cc:655] - waiting on <0x048601a0> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
runtime.cc:655] at java.lang.Object.wait(Object.java:442)
runtime.cc:655] at java.lang.Object.wait(Object.java:568)
runtime.cc:655] at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:217)
runtime.cc:655] - locked <0x048601a0> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
runtime.cc:655] at java.lang.Daemons$Daemon.run(Daemons.java:139)
runtime.cc:655] at java.lang.Thread.run(Thread.java:923)
runtime.cc:655]
runtime.cc:655] "HeapTaskDaemon" prio=5 tid=12 WaitingForTaskProcessor
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0f28 self=0xe39c0e10
runtime.cc:655] | sysTid=23627 nice=4 cgrp=top-app sched=0/0 handle=0xc3ba81e0
runtime.cc:655] | state=S schedstat=( 124319850 61176562 74 ) utm=3 stm=8 core=2 HZ=100
runtime.cc:655] | stack=0xc3aa5000-0xc3aa7000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 001d8713 /apex/com.android.art/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+163)
runtime.cc:655] native: #03 pc 0034a017 /apex/com.android.art/lib/libart.so (art::gc::TaskProcessor::GetTask(art::Thread*)+599)
runtime.cc:655] native: #04 pc 0034aa64 /apex/com.android.art/lib/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+84)
runtime.cc:655] native: #05 pc 005591d5 /apex/com.android.art/lib/libart.so (art::VMRuntime_runHeapTasks(_JNIEnv*, _jobject*)+53)
runtime.cc:655] at dalvik.system.VMRuntime.runHeapTasks(Native method)
runtime.cc:655] at java.lang.Daemons$HeapTaskDaemon.runInternal(Daemons.java:531)
runtime.cc:655] at java.lang.Daemons$Daemon.run(Daemons.java:139)
runtime.cc:655] at java.lang.Thread.run(Thread.java:923)
runtime.cc:655]
runtime.cc:655] "FinalizerWatchdogDaemon" prio=5 tid=13 Waiting
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0480 self=0xe39c8c10
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] | sysTid=23630 nice=4 cgrp=top-app sched=0/0 handle=0xc388d1e0
runtime.cc:655] | state=S schedstat=( 1162393 40796086 13 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xc378a000-0xc378c000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 001d82ec /apex/com.android.art/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+108)
runtime.cc:655] native: #03 pc 001d8273 /apex/com.android.art/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+35)
runtime.cc:655] native: #04 pc 0053d3b7 /apex/com.android.art/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+599)
runtime.cc:655] native: #05 pc 0053f04a /apex/com.android.art/lib/libart.so (art::Monitor::Wait(art::Thread*, art::ObjPtr<art::mirror::Object>, long long, int, bool, art::ThreadState)+282)
runtime.cc:655] native: #06 pc 0056b9d0 /apex/com.android.art/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+96)
runtime.cc:655] at java.lang.Object.wait(Native method)
runtime.cc:655] - waiting on <0x034da159> (a java.lang.Daemons$FinalizerWatchdogDaemon)
runtime.cc:655] at java.lang.Object.wait(Object.java:442)
runtime.cc:655] at java.lang.Object.wait(Object.java:568)
runtime.cc:655] at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:341)
runtime.cc:655] - locked <0x034da159> (a java.lang.Daemons$FinalizerWatchdogDaemon)
runtime.cc:655] at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:321)
runtime.cc:655] at java.lang.Daemons$Daemon.run(Daemons.java:139)
runtime.cc:655] at java.lang.Thread.run(Thread.java:923)
runtime.cc:655]
runtime.cc:655] "Binder:23612_1" prio=5 tid=14 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec04f8 self=0xe39d2610
runtime.cc:655] | sysTid=23631 nice=0 cgrp=top-app sched=0/0 handle=0xc36861e0
runtime.cc:655] | state=S schedstat=( 4239251 6164606 18 ) utm=0 stm=0 core=1 HZ=100
runtime.cc:655] | stack=0xc358b000-0xc358d000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000cd45c /apex/com.android.runtime/lib/bionic/libc.so (__ioctl+28)
runtime.cc:655] native: #02 pc 00080e6a /apex/com.android.runtime/lib/bionic/libc.so (ioctl+58)
runtime.cc:655] native: #03 pc 00050edb /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+331)
runtime.cc:655] native: #04 pc 0005117a /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+42)
runtime.cc:655] native: #05 pc 00051cb8 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+72)
runtime.cc:655] native: #06 pc 0007e309 /system/lib/libbinder.so (android::PoolThread::threadLoop()+41)
runtime.cc:655] native: #07 pc 00015116 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
runtime.cc:655] native: #08 pc 00098fee /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+174)
runtime.cc:655] native: #09 pc 000147d9 /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
runtime.cc:655] native: #10 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #11 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "Binder:23612_2" prio=5 tid=15 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0570 self=0xe39c1c10
runtime.cc:655] | sysTid=23632 nice=0 cgrp=top-app sched=0/0 handle=0xc35851e0
runtime.cc:655] | state=S schedstat=( 7254117 17019166 13 ) utm=0 stm=0 core=1 HZ=100
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] | stack=0xc348a000-0xc348c000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000cd45c /apex/com.android.runtime/lib/bionic/libc.so (__ioctl+28)
runtime.cc:655] native: #02 pc 00080e6a /apex/com.android.runtime/lib/bionic/libc.so (ioctl+58)
runtime.cc:655] native: #03 pc 00050edb /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+331)
runtime.cc:655] native: #04 pc 0005117a /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+42)
runtime.cc:655] native: #05 pc 00051cb8 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+72)
runtime.cc:655] native: #06 pc 0007e309 /system/lib/libbinder.so (android::PoolThread::threadLoop()+41)
runtime.cc:655] native: #07 pc 00015116 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
runtime.cc:655] native: #08 pc 00098fee /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+174)
runtime.cc:655] native: #09 pc 000147d9 /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
runtime.cc:655] native: #10 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #11 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "Profile Saver" prio=5 tid=16 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec05e8 self=0xe39d4210
runtime.cc:655] | sysTid=23639 nice=9 cgrp=top-app sched=0/0 handle=0xc2bab1e0
runtime.cc:655] | state=S schedstat=( 6932018 87131152 28 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:655] | stack=0xc2ab0000-0xc2ab2000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 001d8713 /apex/com.android.art/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+163)
runtime.cc:655] native: #03 pc 003cc976 /apex/com.android.art/lib/libart.so (art::ProfileSaver::Run()+998)
runtime.cc:655] native: #04 pc 003d2e6f /apex/com.android.art/lib/libart.so (art::ProfileSaver::RunProfileSaverThread(void*)+175)
runtime.cc:655] native: #05 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #06 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "xcrash_crash_cb" prio=5 tid=17 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0660 self=0xe39cee10
runtime.cc:655] | sysTid=23641 nice=0 cgrp=top-app sched=0/0 handle=0xc2a4d1e0
runtime.cc:655] | state=S schedstat=( 397015 0 1 ) utm=0 stm=0 core=1 HZ=100
runtime.cc:655] | stack=0xc2952000-0xc2954000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000ccf8c /apex/com.android.runtime/lib/bionic/libc.so (read+28)
runtime.cc:655] native: #02 pc 0000483d /data/app/~~ANWecRyZ5oqQA5eFAfBahA==/com.github.gzuliyujiang.jiapufan.dailonggong-lWZai_eWKma5YolXGQl54A==/lib/x86/libxcrash.so (???)
runtime.cc:655] native: #03 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #04 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "xcrash_trace_dp" prio=5 tid=19 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec06d8 self=0xe39cfc10
runtime.cc:655] | sysTid=23642 nice=0 cgrp=top-app sched=0/0 handle=0xc294c1e0
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] | state=S schedstat=( 312226 3898175 1 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xc2851000-0xc2853000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000ccf8c /apex/com.android.runtime/lib/bionic/libc.so (read+28)
runtime.cc:655] native: #02 pc 00004dad /data/app/~~ANWecRyZ5oqQA5eFAfBahA==/com.github.gzuliyujiang.jiapufan.dailonggong-lWZai_eWKma5YolXGQl54A==/lib/x86/libxcrash.so (???)
runtime.cc:655] native: #03 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #04 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "Chrome_ProcessLauncherThread" prio=5 tid=23 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0750 self=0xe39d7a10
runtime.cc:655] | sysTid=23651 nice=0 cgrp=top-app sched=0/0 handle=0xc1df31e0
runtime.cc:655] | state=S schedstat=( 7926203 5891395 17 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xc1cf0000-0xc1cf2000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000cf2bb /apex/com.android.runtime/lib/bionic/libc.so (__epoll_pwait+43)
runtime.cc:655] native: #02 pc 00088f9d /apex/com.android.runtime/lib/bionic/libc.so (epoll_wait+45)
runtime.cc:655] native: #03 pc 0001a003 /system/lib/libutils.so (android::Looper::pollInner(int)+259)
runtime.cc:655] native: #04 pc 00019e96 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+118)
runtime.cc:655] native: #05 pc 0010ef8b /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+59)
runtime.cc:655] at android.os.MessageQueue.nativePollOnce(Native method)
runtime.cc:655] at android.os.MessageQueue.next(MessageQueue.java:335)
runtime.cc:655] at android.os.Looper.loop(Looper.java:183)
runtime.cc:655] at android.os.HandlerThread.run(HandlerThread.java:67)
runtime.cc:655]
runtime.cc:655] "GoogleApiHandler" prio=5 tid=25 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0870 self=0xe39d9610
runtime.cc:655] | sysTid=23653 nice=9 cgrp=top-app sched=0/0 handle=0xc1be11e0
runtime.cc:655] | state=S schedstat=( 15719345 18720896 37 ) utm=0 stm=1 core=3 HZ=100
runtime.cc:655] | stack=0xc1ade000-0xc1ae0000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000cf2bb /apex/com.android.runtime/lib/bionic/libc.so (__epoll_pwait+43)
runtime.cc:655] native: #02 pc 00088f9d /apex/com.android.runtime/lib/bionic/libc.so (epoll_wait+45)
runtime.cc:655] native: #03 pc 0001a003 /system/lib/libutils.so (android::Looper::pollInner(int)+259)
runtime.cc:655] native: #04 pc 00019e96 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+118)
runtime.cc:655] native: #05 pc 0010ef8b /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+59)
runtime.cc:655] at android.os.MessageQueue.nativePollOnce(Native method)
runtime.cc:655] at android.os.MessageQueue.next(MessageQueue.java:335)
runtime.cc:655] at android.os.Looper.loop(Looper.java:183)
runtime.cc:655] at android.os.HandlerThread.run(HandlerThread.java:67)
runtime.cc:655]
runtime.cc:655] "Chrome_IOThread" prio=7 tid=26 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0990 self=0xe39db210
runtime.cc:655] | sysTid=23666 nice=-4 cgrp=top-app sched=0/0 handle=0xc12b81e0
runtime.cc:655] | state=S schedstat=( 16537335 2575912 31 ) utm=0 stm=1 core=2 HZ=100
runtime.cc:655] | stack=0xc11bd000-0xc11bf000 stackSize=1008KB
runtime.cc:655] | held mutexes=
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000cf2bb /apex/com.android.runtime/lib/bionic/libc.so (__epoll_pwait+43)
runtime.cc:655] native: #02 pc 00088f9d /apex/com.android.runtime/lib/bionic/libc.so (epoll_wait+45)
runtime.cc:655] native: #03 pc 01234d88 /product/app/TrichromeLibrary/TrichromeLibrary.apk!libmonochrome.so (offset 637000) (???)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "ThreadPoolForeg" prio=5 tid=27 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0a08 self=0xe39d6c10
runtime.cc:655] | sysTid=23674 nice=0 cgrp=top-app sched=0/0 handle=0xc0fb51e0
runtime.cc:655] | state=S schedstat=( 3772095 3182177 17 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:655] | stack=0xc0eba000-0xc0ebc000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 0007725e /apex/com.android.runtime/lib/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+142)
runtime.cc:655] native: #03 pc 000e5c4a /apex/com.android.runtime/lib/bionic/libc.so (pthread_cond_timedwait_monotonic_np+90)
runtime.cc:655] native: #04 pc 010e18cf /product/app/TrichromeLibrary/TrichromeLibrary.apk!libmonochrome.so (offset 637000) (???)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "PlatformServiceBridgeHandlerThread" prio=5 tid=28 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0a80 self=0xe39d5010
runtime.cc:655] | sysTid=23685 nice=0 cgrp=top-app sched=0/0 handle=0xc06ac1e0
runtime.cc:655] | state=S schedstat=( 3022565 3291655 8 ) utm=0 stm=0 core=2 HZ=100
runtime.cc:655] | stack=0xc05a9000-0xc05ab000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000cf2bb /apex/com.android.runtime/lib/bionic/libc.so (__epoll_pwait+43)
runtime.cc:655] native: #02 pc 00088f9d /apex/com.android.runtime/lib/bionic/libc.so (epoll_wait+45)
runtime.cc:655] native: #03 pc 0001a003 /system/lib/libutils.so (android::Looper::pollInner(int)+259)
runtime.cc:655] native: #04 pc 00019e96 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+118)
runtime.cc:655] native: #05 pc 0010ef8b /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+59)
runtime.cc:655] at android.os.MessageQueue.nativePollOnce(Native method)
runtime.cc:655] at android.os.MessageQueue.next(MessageQueue.java:335)
runtime.cc:655] at android.os.Looper.loop(Looper.java:183)
runtime.cc:655] at android.os.HandlerThread.run(HandlerThread.java:67)
runtime.cc:655]
runtime.cc:655] "Binder:23612_3" prio=5 tid=29 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0ba0 self=0xe39ddc10
runtime.cc:655] | sysTid=23688 nice=0 cgrp=top-app sched=0/0 handle=0xc05a31e0
runtime.cc:655] | state=S schedstat=( 19912762 25007545 46 ) utm=0 stm=1 core=2 HZ=100
runtime.cc:655] | stack=0xc04a8000-0xc04aa000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000cd45c /apex/com.android.runtime/lib/bionic/libc.so (__ioctl+28)
runtime.cc:655] native: #02 pc 00080e6a /apex/com.android.runtime/lib/bionic/libc.so (ioctl+58)
runtime.cc:655] native: #03 pc 00050edb /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+331)
runtime.cc:655] native: #04 pc 0005117a /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+42)
runtime.cc:655] native: #05 pc 00051cb8 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+72)
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] native: #06 pc 0007e309 /system/lib/libbinder.so (android::PoolThread::threadLoop()+41)
runtime.cc:655] native: #07 pc 00015116 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
runtime.cc:655] native: #08 pc 00098fee /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+174)
runtime.cc:655] native: #09 pc 000147d9 /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
runtime.cc:655] native: #10 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #11 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "ThreadPoolForeg" prio=5 tid=30 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0c18 self=0xe39e2210
runtime.cc:655] | sysTid=23684 nice=0 cgrp=top-app sched=0/0 handle=0xc07ad1e0
runtime.cc:655] | state=S schedstat=( 4574948 279813 23 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:655] | stack=0xc06b2000-0xc06b4000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 0007725e /apex/com.android.runtime/lib/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+142)
runtime.cc:655] native: #03 pc 000e5c4a /apex/com.android.runtime/lib/bionic/libc.so (pthread_cond_timedwait_monotonic_np+90)
runtime.cc:655] native: #04 pc 010e18cf /product/app/TrichromeLibrary/TrichromeLibrary.apk!libmonochrome.so (offset 637000) (???)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "MemoryInfra" prio=5 tid=2 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0c90 self=0xe39da410
runtime.cc:655] | sysTid=23671 nice=0 cgrp=top-app sched=0/0 handle=0xc11b71e0
runtime.cc:655] | state=S schedstat=( 12329607 1059158 8 ) utm=0 stm=0 core=3 HZ=100
runtime.cc:655] | stack=0xc10bc000-0xc10be000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 0007725e /apex/com.android.runtime/lib/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+142)
runtime.cc:655] native: #03 pc 000e5b1e /apex/com.android.runtime/lib/bionic/libc.so (pthread_cond_wait+62)
runtime.cc:655] native: #04 pc 01313075 /product/app/TrichromeLibrary/TrichromeLibrary.apk!libmonochrome.so (offset 637000) (???)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "AsyncTask #4" prio=5 tid=5 TimedWaiting
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0d80 self=0xe39d3410
runtime.cc:655] | sysTid=23730 nice=0 cgrp=top-app sched=0/0 handle=0xc1cea1e0
runtime.cc:655] | state=S schedstat=( 68491479 155914417 181 ) utm=1 stm=5 core=0 HZ=100
runtime.cc:655] | stack=0xc1be7000-0xc1be9000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 00695c82 /apex/com.android.art/lib/libart.so (art::Thread::Park(bool, long long)+1394)
runtime.cc:655] native: #03 pc 00590272 /apex/com.android.art/lib/libart.so (art::Unsafe_park(_JNIEnv*, _jobject*, unsigned char, long long)+738)
runtime.cc:655] at sun.misc.Unsafe.park(Native method)
runtime.cc:655] - waiting on an unknown object
runtime.cc:655] at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
runtime.cc:655] at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
runtime.cc:655] at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
runtime.cc:655] at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
runtime.cc:655] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:655] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
runtime.cc:655] at java.lang.Thread.run(Thread.java:923)
runtime.cc:655]
runtime.cc:655] "queued-work-looper" prio=6 tid=18 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12ec0e48 self=0xe39d8810
runtime.cc:655] | sysTid=23777 nice=-2 cgrp=top-app sched=0/0 handle=0xc02bc1e0
runtime.cc:655] | state=S schedstat=( 330284 4570592 4 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:655] | stack=0xc01b9000-0xc01bb000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 000cf2bb /apex/com.android.runtime/lib/bionic/libc.so (__epoll_pwait+43)
runtime.cc:655] native: #02 pc 00088f9d /apex/com.android.runtime/lib/bionic/libc.so (epoll_wait+45)
runtime.cc:655] native: #03 pc 0001a003 /system/lib/libutils.so (android::Looper::pollInner(int)+259)
runtime.cc:655] native: #04 pc 00019e96 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+118)
runtime.cc:655] native: #05 pc 0010ef8b /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+59)
runtime.cc:655] at android.os.MessageQueue.nativePollOnce(Native method)
runtime.cc:655] at android.os.MessageQueue.next(MessageQueue.java:335)
runtime.cc:655] at android.os.Looper.loop(Looper.java:183)
runtime.cc:655] at android.os.HandlerThread.run(HandlerThread.java:67)
runtime.cc:655]
runtime.cc:655] "Binder:23612_4" prio=5 tid=7 Native
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12e80f88 self=0xe39d1810
runtime.cc:655] | sysTid=23789 nice=0 cgrp=top-app sched=0/0 handle=0xc25c01e0
runtime.cc:655] | state=S schedstat=( 3979386 8624252 17 ) utm=0 stm=0 core=3 HZ=100
runtime.cc:655] | stack=0xc24c5000-0xc24c7000 stackSize=1008KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b97 [vdso] (__kernel_vsyscall+7)
runtime.cc:655] native: #01 pc 000cd45c /apex/com.android.runtime/lib/bionic/libc.so (__ioctl+28)
runtime.cc:655] native: #02 pc 00080e6a /apex/com.android.runtime/lib/bionic/libc.so (ioctl+58)
runtime.cc:655] native: #03 pc 00050edb /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+331)
runtime.cc:655] native: #04 pc 0005117a /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+42)
runtime.cc:655] native: #05 pc 00051cb8 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+72)
runtime.cc:655] native: #06 pc 0007e309 /system/lib/libbinder.so (android::PoolThread::threadLoop()+41)
runtime.cc:655] native: #07 pc 00015116 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
runtime.cc:655] native: #08 pc 00098fee /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+174)
runtime.cc:655] native: #09 pc 000147d9 /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
runtime.cc:655] native: #10 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #11 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655]
runtime.cc:655] "AsyncTask #7" prio=4 tid=21 TimedWaiting
runtime.cc:655] | group="" sCount=1 dsCount=0 flags=1 obj=0x12e40630 self=0xe39cd210
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] | sysTid=23799 nice=10 cgrp=top-app sched=0/0 handle=0xbd3a11e0
runtime.cc:655] | state=S schedstat=( 25887906 23682948 66 ) utm=0 stm=2 core=2 HZ=100
runtime.cc:655] | stack=0xbd29e000-0xbd2a0000 stackSize=1040KB
runtime.cc:655] | held mutexes=
runtime.cc:655] native: #00 pc 00000b99 [vdso] (__kernel_vsyscall+9)
runtime.cc:655] native: #01 pc 0005ad68 /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
runtime.cc:655] native: #02 pc 00695c82 /apex/com.android.art/lib/libart.so (art::Thread::Park(bool, long long)+1394)
runtime.cc:655] native: #03 pc 00590272 /apex/com.android.art/lib/libart.so (art::Unsafe_park(_JNIEnv*, _jobject*, unsigned char, long long)+738)
runtime.cc:655] at sun.misc.Unsafe.park(Native method)
runtime.cc:655] - waiting on an unknown object
runtime.cc:655] at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
runtime.cc:655] at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
runtime.cc:655] at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
runtime.cc:655] at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
runtime.cc:655] at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
runtime.cc:655] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:655] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
runtime.cc:655] at java.lang.Thread.run(Thread.java:923)
runtime.cc:655]
runtime.cc:655] Aborting thread:
runtime.cc:655] "RenderThread" prio=10 tid=3 Native
runtime.cc:655] | group="" sCount=0 dsCount=0 flags=0 obj=0x12ec0d08 self=0xe39d5e10
runtime.cc:655] | sysTid=23724 nice=-10 cgrp=top-app sched=0/0 handle=0xc27fc1e0
runtime.cc:655] | state=R schedstat=( 4211271486 1169366720 2025 ) utm=11 stm=410 core=3 HZ=100
runtime.cc:655] | stack=0xc2701000-0xc2703000 stackSize=1008KB
runtime.cc:655] | held mutexes= "abort lock"
runtime.cc:655] native: #00 pc 00542d7e /apex/com.android.art/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+110)
runtime.cc:655] native: #01 pc 006a0877 /apex/com.android.art/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+1015)
runtime.cc:655] native: #02 pc 0069a151 /apex/com.android.art/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+65)
runtime.cc:655] native: #03 pc 006522a5 /apex/com.android.art/lib/libart.so (art::AbortState::DumpThread(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*) const+53)
runtime.cc:655] native: #04 pc 00639a9b /apex/com.android.art/lib/libart.so (art::Runtime::Abort(char const*)+2587)
runtime.cc:655] native: #05 pc 00025a23 /apex/com.android.art/lib/libartbase.so (std::__1::__function::__func<void (*)(char const*), std::__1::allocator<void (*)(char const*)>, void (char const*)>::operator()(char const*&&)+35)
runtime.cc:655] native: #06 pc 0001588f /system/lib/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+79)
runtime.cc:655] native: #07 pc 00006291 /system/lib/liblog.so (__android_log_call_aborter+33)
runtime.cc:655] native: #08 pc 00014d14 /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+436)
runtime.cc:655] native: #09 pc 00405db0 /apex/com.android.art/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+2912)
runtime.cc:655] native: #10 pc 00405e44 /apex/com.android.art/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+116)
2020-10-10 10:49:40.985 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:655] native: #11 pc 003f60b3 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+67)
runtime.cc:655] native: #12 pc 003f4c1d /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+3837)
runtime.cc:655] native: #13 pc 003f34c9 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+969)
runtime.cc:655] native: #14 pc 003f9212 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::CheckJNI::CheckCallArgs(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck&, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, art::InvokeType, art::(anonymous namespace)::VarArgs const*)+306)
runtime.cc:655] native: #15 pc 003f82d1 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, char*, art::Primitive::Type, art::InvokeType)+865)
runtime.cc:655] native: #16 pc 003e3e79 /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, char*)+73)
runtime.cc:655] native: #17 pc 001d2dfe /system/lib/libhwui.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+62)
runtime.cc:655] native: #18 pc 0023b7ec /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7androidL54android_view_ThreadedRenderer_setFrameCompleteCallbackEP7_JNIEnvP8_jobjectxS6_E3$_2NS_9allocatorIS7_EEFvxEEclEOx$78790a34cc3fbcbe13dc6089df1d560d+156)
runtime.cc:655] native: #19 pc 002584a0 /system/lib/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+2672)
runtime.cc:655] native: #20 pc 0025ab6f /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+767)
runtime.cc:655] native: #21 pc 0024543d /system/lib/libhwui.so (android::uirenderer::WorkQueue::process()+285)
runtime.cc:655] native: #22 pc 0026cacf /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+127)
runtime.cc:655] native: #23 pc 00015116 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
runtime.cc:655] native: #24 pc 000147d9 /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
runtime.cc:655] native: #25 pc 000e6964 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
runtime.cc:655] native: #26 pc 00078567 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
runtime.cc:655] (no managed stack frames)
runtime.cc:655] Pending exception java.lang.IllegalStateException: Unable to create layer for View, size 0x1600 max size 8192 color type 4 has context 1
runtime.cc:655] (Throwable with empty stack trace)
runtime.cc:655]
2020-10-10 10:49:40.986 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/fan.dailonggon: runtime.cc:663] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception java.lang.IllegalStateException: Unable to create layer for View, size 0x1600 max size 8192 color type 4 has context 1
runtime.cc:663] (Throwable with empty stack trace)
runtime.cc:663]
runtime.cc:663] in call to CallVoidMethodV
2020-10-10 10:49:41.176 23612-23641/com.github.gzuliyujiang.jiapufan.dailonggong E/memtrack: Couldn't load memtrack module
--------- beginning of crash
2020-10-10 10:49:41.228 23612-23724/com.github.gzuliyujiang.jiapufan.dailonggong A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 23724 (RenderThread), pid 23612 (fan.dailonggong)
你的demo是没问题的,和我的应用场景有关,我是基于io.noties.markwon
实现了一个Markdown解析器,启动Markdown解析器Activity是正常的,但是点击里面的链接再启动新的Activity就闪退了。…………然而,我基于你的demo同样实现一个Markdown解析器并不会闪退,看来闪退复现的场景还是特定的啊。
+1,曾经也遇到这个问题。
老哥,那你当初是怎么搞定的?
@liyujiang-gzu 如果可以的话,请提供一个最小化的可复现工程,这样便于我们确定问题和验证修复。
我记得我曾经也遇到这个问题,而且是 native 级别的崩溃,所以当时还很难捕捉到它,于是我改为自己实现的另一个 FastScroller 解决了(实际上我本来就做过这方面的工作,只是当时有一个新场景未能直接使用原有的,于是就尝试使用 zhanghai/AndroidFastScroll 这个版本),也就是说,其实并没有直接解决 zhanghai/AndroidFastScroll 的这个问题。具体问题我记不太清楚了,可能需要找一下 commit 记录,待确认。
我想起我曾经还为此开了一个 issue,只是当时我并没有找到它的准确 root cause,所以就自行关闭了,现在既然有人遇到和我一样的问题,有必要切实排查一下了: onPreDraw is called indefinitely, causing ANR and exception #23
@zhanghai 看起来这位朋友遇到的错误栈和我当时的到的是一样的,而且都是 native 级别的 crash——这样的 crash 往往更加难以发现和捕捉,可能会导致使用了这个库的项目发生错误而找不到根源。
@liyujiang-gzu 如果可以的话,请提供一个最小化的可复现工程,这样便于我们确定问题和验证修复。
我记得我曾经也遇到这个问题,而且是 native 级别的崩溃,所以当时还很难捕捉到它,于是我改为自己实现的另一个 FastScroller 解决了(实际上我本来就做过这方面的工作,只是当时有一个新场景未能直接使用原有的,于是就尝试使用 zhanghai/AndroidFastScroll 这个版本),也就是说,其实并没有直接解决 zhanghai/AndroidFastScroll 的这个问题。具体问题我记不太清楚了,可能需要找一下 commit 记录,待确认。
我尝试建立一个简单的demo来复现闪退场景,但是没如预期一样复现。从闪退日志来看是native级别的,很难分析出触发的原因,要构建一个最小化的可复现工程也就不好办啊
错误的来源在 SkiaPipeline::createOrUpdateLayer
,调用 node->getLayerSurface()
返回了 nullptr
,也就是说稍早时的 SkSurface::MakeRenderTarget
失败了。比较让人在意的是错误消息里的 size: 0x1600
,你的代码里有宽度为 0
的控件吗?
Pending exception java.lang.IllegalStateException: Unable to create layer for View, size 0x1600 max size 8192 color type 4 has context 1
以及,我自己的应用 zhanghai/MaterialFiles 也用了这个库,但是并没有在 Android 10+ 遇到这个问题,所以应该是有什么我不知道的触发条件。
往 Skia 里看了几层,发现确实是 width
为 0
导致的问题,在 GrCaps::validateSurfaceParams
中 dimensions.width() < 1
会导致验证失败最终 SkSurface::MakeRenderTarget
失败。
错误的来源在
SkiaPipeline::createOrUpdateLayer
,调用node->getLayerSurface()
返回了nullptr
,也就是说稍早时的SkSurface::MakeRenderTarget
失败了。比较让人在意的是错误消息里的size: 0x1600
,你的代码里有宽度为0
的控件吗?Pending exception java.lang.IllegalStateException: Unable to create layer for View, size 0x1600 max size 8192 color type 4 has context 1
以及,我自己的应用 zhanghai/MaterialFiles 也用了这个库,但是并没有在 Android 10+ 遇到这个问题,所以应该是有什么我不知道的触发条件。
代码里没有明示的宽度为0的,只有wrap_content
的不可见的RelativeLayout占位控件,以及固定宽度32dp的ProgressBar,其他的宽度都是match_parent
应该需要搭配 https://github.com/noties/Markwon 这个项目进行复现,我当时也是使用到 Markwon 才遇到这个问题。当承载 Markdown 的 TextView 长度一变,就可能触发 FastScroller 异常。
应该需要搭配 https://github.com/noties/Markwon 这个项目进行复现,我当时也是使用到 Markwon 才遇到这个问题。当承载 Markdown 的 TextView 长度一变,就可能触发 FastScroller 异常。
@zhanghai @drakeet 我重新建立了个demo,基于noties/Markwon及zhanghai/AndroidFastScrolll,可以重现了,下载这个附件: AndroidFastScroll.zip
触发奔溃的条件貌似是:Activity+noties/Markwon+zhanghai/AndroidFastScrolll
.setTrackDrawable(new ColorDrawable(Color.TRANSPARENT))
The source of the bug is here, creating a TRANSPARENT track layer is what is causing this problem. Remove this line and see if the error persists.
More insight I would like to add, but I have not read the code yet, but setting a blank transparent color creates a full screen bound for the view which consequently consumes too much memory. If possible, use a static width and height parameters for the track drawable with transparent color parameter.
@Hamza417 Thanks for this great observation! Yes, a ColorDrawable
has an intrinsic width of -1
, which would result in the manual layout code trying to layout with left > right
and View.layout()
doesn't seem to be checking against this. I'll add a check in FastScroller
for this.
@liyujiang-gzu @drakeet Could you verify if setting the track to a transparent shape fixes the issue?
@drakeet @liyujiang-gzu This may have been fixed by #39 and I've released 1.1.8. Could you check if this issue has been fixed?