参考https://issuetracker.google.com/issues/150633385
错误日志
10###00 pc 000614de /apex/com.android.runtime/lib/bionic/libc.so (abort+165) 20###01 pc 00005a95 /system/lib/liblog.so (__android_log_assert+176) 30###02 pc 001fbb57 /system/lib/libhwui.so (_ZN7android10uirenderer12skiapipeline18SkiaOpenGLPipeline11swapBuffersERKNS0_12renderthread5frameEbRK6SkRectPNS0_9frameInfoEPb+94) 40###03 pc 001f9ae5 /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread13CanvasContext4drawEv+488) 50###04 pc 001f8fad /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread13Drawframetask3runEv+164) 60###05 pc 0020674d /system/lib/libhwui.so (_ZN7android10uirenderer9WorkQueue7processEv+164) 70###06 pc 0020659f /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+54) 80###07 pc 0000d9b3 /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+210) 90###08 pc 000ac4dd /apex/com.android.runtime/lib/bionic/libc.so (_ZL15__pthread_startPv+20) 100###09 pc 00062989 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) 111##(no managed stack frames)
1at android.graphics.HardwareRenderer.nSyncAndDrawframe(Native Method) 2at android.graphics.HardwareRenderer.syncAndDrawframe(HardwareRenderer.java:422) 3at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:670) 4at android.view.ViewRootImpl.draw(ViewRootImpl.java:3732) 5at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3527) 6at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2864) 7at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1817) 8at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7779) 9at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1031) 10at android.view.Choreographer.doCallbacks(Choreographer.java:854) 11at android.view.Choreographer.doframe(Choreographer.java:789) 12at android.view.Choreographer$frameDisplayEventReceiver.run(Choreographer.java:1016) 13at android.os.Handler.handleCallback(Handler.java:914) 14at android.os.Handler.dispatchMessage(Handler.java:100) 15at android.os.Looper.loop(Looper.java:227) 16at android.app.ActivityThread.main(ActivityThread.java:7582) 17at java.lang.reflect.Method.invoke(Native Method) 18at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 19at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953)
原因:问题是由于使用了 ImMemoryDexClassLoader,并且它主要发生在使用 InMemoryDexClassLoader 的应用程序被发出 ANR 时。
the issue is due to the use of ImMemoryDexClassLoader, and it happens mostly when an app using InMemoryDexClassLoader gets issued an ANR.
此问题主要集中在Android 10版本并使用ImMemoryDexClassLoader类加载器这种情况,官方建议是在Android 10上不使用ImMemoryDexClassLoader,ImMemoryDexClassLoader重要用与应用加固,因此在选择加固策略时,避免在Android 10使用ImMemoryDexClassLoader



