Skip to content

NPE accessing childrenInHitTestOrder #37886

@mklim

Description

@mklim

We have a report of AccessiblityBridge.java throwing an NPE when it tries to access childrenInHitTestOrder. It's not obvious to me whether the fix here is fixing the NPE itself or if this is also a sign that there's some underlying unexpected state bug that needs correcting.

Originally reported in googlecodelabs/flutter-cupertino-store#19 by @acdicator:

I try to build and scroll on product list tab but got this eror.

An Observatory debugger and profiler on Redmi Note 7 is available at: http://127.0.0.1:53064/hf-XcBGxc14=/
For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".
E/flutter (16341): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(40)] java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
E/flutter (16341): at io.flutter.view.AccessibilityBridge.updateSemantics(AccessibilityBridge.java:1329)
E/flutter (16341): at io.flutter.view.AccessibilityBridge$1.updateSemantics(AccessibilityBridge.java:269)
E/flutter (16341): at io.flutter.embedding.engine.FlutterJNI.updateSemantics(FlutterJNI.java:439)
E/flutter (16341): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (16341): at android.os.MessageQueue.next(MessageQueue.java:326)
E/flutter (16341): at android.os.Looper.loop(Looper.java:165)
E/flutter (16341): at android.app.ActivityThread.main(ActivityThread.java:6810)
E/flutter (16341): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (16341): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
E/flutter (16341): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
E/flutter (16341):
F/flutter (16341): [FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(96)] Check failed: CheckException(env).
F/libc (16341): Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 16341 (cupertino_store), pid 16341 (cupertino_store)

Build fingerprint: 'xiaomi/lavender/lavender:9/PKQ1.180904.001/V10.3.6.0.PFGMIXM:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 16341, tid: 16341, name: cupertino_store >>> com.example.cupertino_store <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: '[FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(96)] Check failed: CheckException(env).
'
x0 0000000000000000 x1 0000000000003fd5 x2 0000000000000006 x3 0000000000000008
x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000000000800000
x8 0000000000000083 x9 3c4cec4acc80e56e x10 0000000000000000 x11 fffffffc7ffffbdf
x12 0000000000000001 x13 0000000000000028 x14 ffffffffffffffff x15 0000a9633d943fcf
x16 00000074426582b0 x17 0000007442577cd0 x18 0000000000000010 x19 0000000000003fd5
x20 0000000000003fd5 x21 0000007fcdebd2e8 x22 00000000ffffffff x23 000000000000000c
x24 0000000000000018 x25 00000000ffffffff x26 00000073a1babadc x27 0000000000000018
x28 000000000000000f x29 0000007fcdebd2d0
sp 0000007fcdebd290 lr 000000744256b144 pc 000000744256b16c
backtrace:
#00 pc 000000000002216c /system/lib64/libc.so (abort+116)
#1 pc 0000000000d34ca8 /data/app/com.example.cupertino_store-SYoQEjwdcIUg6U7rA5MKGw==/lib/arm64/libflutter.so (offset 0xd20000)
#2 pc 0000000000d27960 /data/app/com.example.cupertino_store-SYoQEjwdcIUg6U7rA5MKGw==/lib/arm64/libflutter.so (offset 0xd20000)
#3 pc 0000000000d26318 /data/app/com.example.cupertino_store-SYoQEjwdcIUg6U7rA5MKGw==/lib/arm64/libflutter.so (offset 0xd20000)
#4 pc 0000000000d6bb74 /data/app/com.example.cupertino_store-SYoQEjwdcIUg6U7rA5MKGw==/lib/arm64/libflutter.so (offset 0xd20000)
#5 pc 0000000000d35754 /data/app/com.example.cupertino_store-SYoQEjwdcIUg6U7rA5MKGw==/lib/arm64/libflutter.so (offset 0xd20000)
#6 pc 0000000000d3a45c /data/app/com.example.cupertino_store-SYoQEjwdcIUg6U7rA5MKGw==/lib/arm64/libflutter.so (offset 0xd20000)
#7 pc 0000000000014ff8 /system/lib64/libutils.so (android::Looper::pollInner(int)+836)
#8 pc 0000000000014c18 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+60)
#9 pc 00000000001274dc /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
#10 pc 0000000000dc72cc /system/framework/arm64/boot-framework.oat (offset 0xa29000) (android.media.MediaExtractor.seekTo [DEDUPED]+140)
#11 pc 000000000000389c /dev/ashmem/dalvik-jit-code-cache (deleted) (android.os.MessageQueue.next+204)
#12 pc 0000000000557388 /system/lib64/libart.so (art_quick_invoke_stub+584)
#13 pc 00000000000cfcc8 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#14 pc 0000000000280338 /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
#15 pc 000000000027a34c /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
#16 pc 00000000005264c8 /system/lib64/libart.so (MterpInvokeVirtual+588)
#17 pc 0000000000549994 /system/lib64/libart.so (ExecuteMterpImpl+14228)
#18 pc 0000000000bc7d94 /system/framework/boot-framework.vdex (android.os.Looper.loop+130)
#19 pc 0000000000254050 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3375396565+488)
#20 pc 0000000000259b44 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
#21 pc 000000000027a330 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
#22 pc 00000000005279cc /system/lib64/libart.so (MterpInvokeStatic+204)
#23 pc 0000000000549b14 /system/lib64/libart.so (ExecuteMterpImpl+14612)
#24 pc 00000000004237be /system/framework/boot-framework.vdex (android.app.ActivityThread.main+214)
#25 pc 0000000000254050 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3375396565+488)
#26 pc 0000000000516d7c /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
#27 pc 00000000005604fc /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
#28 pc 000000000055764c /system/lib64/libart.so (art_quick_invoke_static_stub+604)
#29 pc 00000000000cfce8 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
#30 pc 000000000045dd7c /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#31 pc 000000000045f7d0 /system/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1440)
#32 pc 00000000003ef398 /system/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52)
#33 pc 000000000078eed4 /system/framework/arm64/boot-core-oj.oat (offset 0x2dc000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+180)
#34 pc 0000000000557388 /system/lib64/libart.so (art_quick_invoke_stub+584)
#35 pc 00000000000cfcc8 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#36 pc 0000000000280338 /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
#37 pc 000000000027a34c /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
#38 pc 00000000005264c8 /system/lib64/libart.so (MterpInvokeVirtual+588)
#39 pc 0000000000549994 /system/lib64/libart.so (ExecuteMterpImpl+14228)
#40 pc 0000000001286bd0 /system/framework/boot-framework.vdex (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
#41 pc 0000000000254050 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3375396565+488)
#42 pc 0000000000516d7c /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
#43 pc 00000000005604fc /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
#44 pc 000000000245184c /system/framework/arm64/boot-framework.oat (offset 0xa29000) (com.android.internal.os.ZygoteInit.main+2028)
#45 pc 000000000055764c /system/lib64/libart.so (art_quick_invoke_static_stub+604)
#46 pc 00000000000cfce8 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
#47 pc 000000000045dd7c /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#48 pc 000000000045d9dc /system/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+424)
#49 pc 0000000000362cd8 /system/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+652)
#50 pc 00000000000b2584 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116)
#51 pc 00000000000b5120 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vectorandroid::String8 const&, bool)+924)
#52 pc 0000000000002528 /system/bin/app_process64 (main+2012)
#53 pc 00000000000c9270 /system/lib64/libc.so (__libc_init+88)
Lost connection to device.

Metadata

Metadata

Assignees

Labels

a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)engineflutter/engine related. See also e: labels.platform-androidAndroid applications specifically

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions