Hi JUCE devs,
Seen a small number of crash reports via our automated crash reporting systems:
juce::AccessibilityNativeHandle::populateNodeInfo(_jobject*) jni.h:841
… no additional call stack around this, I’m sorry to say. Seen on Redmi Note 4, Android 6.0
And also seen on Redmi Note 4, Android 6.0 …:
libc.so...
libart.so...
juce::areAnyAccessibilityClientsActive() jni.h:841
juce::AccessibilityHandler::AccessibilityHandler(juce::Component&, juce::AccessibilityRole, juce::AccessibilityActions, juce::AccessibilityHandler::Interfaces) juce_android_Accessibility.cpp:830
std::__ndk1::__unique_if<juce::AccessibilityHandler>::__unique_single std::__ndk1::make_unique<juce::AccessibilityHandler, juce::Component&, juce::AccessibilityRole>(juce::Component&, juce::AccessibilityRole&&) memory:3003
juce::Component::createAccessibilityHandler() juce_Component.cpp:3167
juce::findEnclosingHandler(juce::Component*) juce_Component.cpp:3183
juce::AccessibilityNativeHandle::populateNodeInfo(_jobject*) juce_AccessibilityHandler.cpp:200
juce::AndroidComponentPeer::populateAccessibilityNodeInfoJni(_JNIEnv*, _jobject*, long, int, _jobject*) juce_android_Windowing.cpp:763
Hoping this is of some help…
Pete
ed95
September 7, 2021, 11:16am
2
I was unable to reproduce any crashes using the Android Studio emulator with a device running Android 6, but from the limited stack trace you’ve got it looks like it might be due to a null app context pointer. I’ve pushed a potential fix to develop
here so please let me know if you see any more similar crashes with these changes and I’ll take another look:
committed 10:20AM - 06 Sep 21 UTC
Hi @ed95 many thanks! I’ll be sure to use that update in the next release, and will let you know if we see any new (or the same) crashes. NB the crashes I reported seem super-rare, but of course as you have many developers, and not all use automated crash reporting, I thought it best to let you know
Pete
ed95
September 7, 2021, 2:08pm
4
We always appreciate crash reports!
1 Like
Hi @ed95 , I’ve rolled-out that update - just this morning.
Alas, the app is still crashing. Crash reports already in!
And
Both from Galaxy Tab S2 9.7, Android 7.0
Hoping we can fix this soon
Best wishes,
Pete
ed95
September 15, 2021, 1:56pm
6
I’ve pushed a few more Android accessibility fixes to the develop
branch, hopefully these should make things more stable:
committed 07:48AM - 15 Sep 21 UTC
committed 07:51AM - 15 Sep 21 UTC
committed 07:56AM - 15 Sep 21 UTC
Calling AccessibilityHandler::getChildren() or getParent() may cause an Accessib… ilityHandler object to be created and an InternalAccessibilityEvent::elementCreated notification to be sent. Calling AndroidAccessibilityEvent.setSource may then cause a recursive populateNodeInfo() call.
2 Likes
Many thanks @ed95 , I’ll check them out!
Pete
Hi @ed95
This has resolved a lot of issues, thank you. However, I’ve just seen this:
libc.so
0x99be6a20 + 440864
libc.so
0x99be3ea4 + 429732
libc.so
0x99b9f350 + 148304
libc.so
0x99b97d6c + 118124
libart.so
0x9600d5fc + 4384252
libart.so
0x95cc3f2c + 937772
libart.so
0x9602e344 + 4518724
libart.so
0x9602935c + 4498268
libart.so
0x9604313c + 4604220
libart.so
0x9603bac0 + 4573888
libart.so
0x9603b02c + 4571180
libart.so
0x96019894 + 4434068
libart.so
0x9600d528 + 4384040
libart.so
0x95cc3f2c + 937772
libart.so
0x95e2ab9c + 2407324
libart.so
0x95f08ffc + 3317756
libjuce_jni.so
_JNIEnv::NewObject(_jclass*, _jmethodID*, ...) jni.h:573
libjuce_jni.so
juce::AndroidComponentPeer::populateAccessibilityNodeInfoJni(_JNIEnv*, _jobject*, long, int, _jobject*) juce_android_Windowing.cpp:764
56480b4765560e52a964b3d022a803397b098b42.dex
0x8a3909cc + 27084
Interesting that it goes quite deep into libart (and then into librc)…
Galaxy Tab S2 9.7, Android 7.0
Best wishes,
Pete
Hi Folks!
I’ve been seeing quite a few crashes on Android, which look like this:
MAIN THREAD - CRASHED
libjuce_jni.so
juce::AccessibilityNativeHandle::populateNodeInfo(_jobject*, int) juce_Accessibility_android.cpp:277
libjuce_jni.so
juce::detail::generatedCallbackImpl<&juce::AndroidComponentPeer::populateAccessibilityNodeInfoCallback, unsigned char, juce::AndroidComponentPeer, int, _jobject*>::{lambda(_JNIEnv*, _jobject*, long, int, _jobject*)#1}::__invoke(_JNIEnv*, _jobject*, long, int, _jobject*) juce_Windowing_android.cpp:1763
libart.so
0x63b55830 + 1398832
Using JUCE develop branch (7.0.9).
Best wishes, Pete