juce::Process::hide() in modules/juce_gui_basics/native/juce_Windowing_android.cpp frees a JNI local reference and then dereferences it:
LocalRef currentActivity (getCurrentActivity().get());
getCurrentActivity () returns a LocalRef <jobject> temporary which owns a JNI local reference.
LocalRef::get ()returns the owned jobject.
The local currentActivity is constructed adopting the local reference (now doubly-owned).
The temporary is destroyed and calls DeleteLocalRef with the owned jobject.
currentActivity now holds (and dereferences) a freed local reference.
Simply removing the call to get () resolves the problem.
NB: while banging on this, I hit scenarios where the current activity was null, so please also insert a conditional guarding against dereferencing a null return value from getCurrentActivity ().
