I think I’ve solved it.
The issue is those characters, but not on file names because files with bad names don’t get synced to Android. However, folders do! (I believe the fact that it allows sync apps to create folders with semicolons in their names is probably an Android bug.)
So if you have folders in your drive with those characters in it (for example “:”), then those folders will be created in Android and as a result, Obsidian app will crash when opening a vault with such folders in it!
Removing those characters from folder names seems to have solved my issue.
Why moving a parent folder and then moving it back again solves the issue: This is a theory, but I’m pretty sure this is what is happening (I haven’t tested it after fixing my issue): If you move a folder, which contains subfolders with “illegal filenames”, then Android will probably either remove such folders or change the names of the subfolders. This would explain the really weird behavior that moving the location of a vault fixes the crash issue.
I hope it helps.
To the Obsidian devs: I think this can be a very big headache. It should either be very clear that folders with illegal names will crash the app, or the app should have some kind of mechanism that handles this situation which does not leave the user scratching their head.
Weird issue indeed, and an Android bug for sure (the fact that it even allows you to create folders with “illegal” characters in their names), but this solved it for me.