I have AnkiDroid 2.23.1 installed on two phones - one old phone running stock Android 10 (which is offline most of the time) and another phone running GrapheneOS Android 16.
I have a deck package which is 155MB in size. I imported that deck on the old Android 10 phone with no problems, and it works just fine.
But when I try to import the same deck on the Android 16 phone, the app immediately crashes.
If I restart the app, it’s the same as it was before the crash - no decks, and I can repeat the import, but it always crashes.
I tried clearing the cache but that makes no difference. I’ve also tried uninstalling and reinstalling the app.
The strange thing is, although the import apparently fails, the app cache size increases from 0 bytes to 155MB, the exact same size as the deck I’m trying to import.
AnkiDroid log extract - failed deck import
12-20 18:37:03.621 30365 30365 I AnkiDroid: DeckPicker:: Import button pressed
12-20 18:37:03.623 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onAttach
12-20 18:37:03.624 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onCreate
12-20 18:37:03.646 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onStart
12-20 18:37:03.646 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onResume
12-20 18:37:03.646 30365 30365 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): null
12-20 18:37:03.648 30365 30365 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): android.app.Dialog$$ExternalSyntheticLambda2@a9a016e
--------- switch to events
12-20 18:37:03.658 30365 30365 I viewroot_draw_event: \[window=VRI\[DeckPicker\],event=reportDrawFinished seqId=0\]
12-20 18:37:03.701 30365 30365 I viewroot_draw_event: \[window=VRI\[DeckPicker\],event=reportDrawFinished seqId=0\]
--------- switch to main
12-20 18:37:03.994 30365 30434 D HWUI : endAllActiveAnimators on 0xb40000687afc95f0 (e2) with handle 0xb40000689afc8d00
12-20 18:37:04.039 30365 30488 D ProfileInstaller: Skipping profile installation for com.ichi2.anki
12-20 18:37:05.316 30365 30365 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): null
12-20 18:37:05.329 30365 30365 W InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
12-20 18:37:05.330 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onPause
12-20 18:37:05.331 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onStop
12-20 18:37:05.331 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onViewDestroyed
12-20 18:37:05.331 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onDestroy
12-20 18:37:05.331 30365 30365 I AnkiDroid: DeckPicker::ImportFileSelectionFragment::onDetach
--------- switch to system
12-20 18:37:05.353 30365 30365 D InsetsController: hide(ime())
--------- switch to main
12-20 18:37:05.353 30365 30365 I ImeTracker: com.ichi2.anki:f89e73c2: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
--------- switch to events
12-20 18:37:05.943 30365 30365 I view_enqueue_input_event: \[eventType=Motion - Cancel,action=com.ichi2.anki/com.ichi2.anki.DeckPicker\]
12-20 18:37:05.952 30365 30365 I wm_on_top_resumed_lost_called: \[Token=190510287,Component Name=com.ichi2.anki.DeckPicker,Reason=topStateChangedWhenResumed\]
--------- switch to main
12-20 18:37:07.018 30365 30365 I AnkiDroid: DeckPicker::onPause
--------- switch to events
12-20 18:37:07.018 30365 30365 I wm_on_paused_called: \[Token=190510287,Component Name=com.ichi2.anki.DeckPicker,Reason=performPause,time=0ms\]
--------- switch to main
12-20 18:37:07.020 30365 30365 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): android.app.Activity$$ExternalSyntheticLambda0@aefc5e
12-20 18:37:07.031 30365 30365 I AnkiDroid: DeckPicker::onStop
--------- switch to events
12-20 18:37:07.034 30365 30365 I wm_on_stop_called: \[Token=190510287,Component Name=com.ichi2.anki.DeckPicker,Reason=STOP_ACTIVITY_ITEM,time=3ms\]
--------- switch to main
12-20 18:37:07.036 30365 30365 I AnkiDroid: DeckPicker::onSaveInstanceState
12-20 18:37:07.046 30365 30365 I AnkiDroid: DeckPicker::onDestroy
12-20 18:37:07.046 30365 30365 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): null
--------- switch to events
12-20 18:37:07.049 30365 30365 I wm_on_destroy_called: \[Token=190510287,Component Name=com.ichi2.anki.DeckPicker,Reason=performDestroy,time=3ms\]
--------- switch to main
12-20 18:37:07.059 30365 30365 D ViewRootImpl: Skipping stats log for color mode