Status Update
Comments
lp...@google.com <lp...@google.com> #2
Thank you for the report. We will try to fix this soon. In the meantime, could you please start the emulator from the console (see the commands below), open the camera app to crash it and attach the output, it might help to figure out what the problem is:
cd /Users/YOUR_USERNAME/Library/Android/sdk/emulator
./emulator -list-avds
./emulator -verbose -avd YOUR_AVD_FROM_PREVIOUS_STEP
if there is a crash report to send, please send it and attach the report id.
lp...@google.com <lp...@google.com> #3
We got a crash report (thanks JP): 872e3b20bc34905b. It says EXC_BAD_INSTRUCTION / 0x00000001
and the console also says "Illegal hardware instruction". I suspect the new MacOS brought a new hypervizor which causes this behavior. Haitao, could you please take a look?
ma...@gmail.com <ma...@gmail.com> #4
We have quite some crashes like this:
product_name="AndroidEmulator" AND crash.Reason="EXC_BAD_INSTRUCTION / 0x00000001" AND cpu.Architecture="arm64"
jb...@google.com <jb...@google.com> #5
The most of crashes happen here:
vVertical_Scale_ARGB_8888_Accelerate
vImageVerticalShear_ARGB8888
vImageVerticalShear_ARGB8888
vImageScale_ARGB8888
vRotateClockwise270Degree_ARGB8888_Accelerate2
vRotate_90_ARGB_8888_270Degree_Accelerate2
ma...@gmail.com <ma...@gmail.com> #6
I suspect EXC_BAD_INSTRUCTION
happens in vImageRotate90_ARGB8888
and vImageScale_ARGB8888
which are used by webcam on MacOS.
Description
PreferenceFragmentCompat sets this adapter (PreferenceGroupAdapter), which implicitly registers an observer. PreferenceFragmentCompat never sets the adapter to null when the view is destroyed, so the observer keeps references to the RecyclerView and doesn't get gc'ed.
I've worked around this by explicitly setting the adapter to null in an override of onDestroyView, but since my component doesn't explicitly have ownership of the list handling, I'd argue that PreferenceFragmentCompat should do this cleanup.
It would be solved by setting the RecyclerView adapter to null in the fragment's onDestroyView.
Here's a memory dump.