I read this thread and I’m not clear what the problem is.
1. Is this the recipe to reproduce?
A. User has the app installed,
B. User downloads and auto-installs update to app from Google Play store.
C. User tries to run app, but it hangs the first time on black screen.
D. Subsequent runs 2, 3, … run fine.
2. What are you doing when the app loads?
It sounds like you’re doing a lot of heavy lifting when the app loads. Also, if you’re modifying and/or reading existing files are you sure you don’t have a bug in your code?
I see this all the time. Users update an existing game/app that stored some settings, but add a new field in the update. Then, when existing users get the update and run the app, the updated version loads the saved settings file from version 1 and (of course) cannot find the new field. This then crashes the game/app or causes other issues.
The trick here is to always assume all fields in your settings (JSON encoded tables) files will be non-present and if they are not present supply a default value before using the field. Also, re-save the settings file after you ‘massage’ it and set defaults.
3. I haven’t seen any logcat logs or notes yet, but maybe I missed that.
4. You mentioned storage permissions and expansion files, but I’m not 100% clear on how these tie in to the reproduction recipe.
Can you clarify:
A. Did the app always require the ‘permissions’ you mention? I ask because it is weird that they need to be OKd a second time for an existing install.
B. Are you seeing this for existing users who had and old version w/o expansion files, then updated and needed expansion files for the new version?
Sorry for the 20 questions. 