Crash on Load on Android with main.obb.png not found
I have deployed the apk for USA and International version of Samsung S7, and Nexus 6, Nexus 4 etc. On the international S7, everything working, however, when I deploy on other devices (USA S7, Nexus 6, Nexus 4), I get a similar error saying the
D/UE4(15590): Assertion failed: nullptr != File [File:E:\UnrealEngine-4.10\Engine\Source\Runtime\Core\Private\Android\AndroidFile.cpp] [Line: 1704]
By modified the code a bit, it seems that game cannot find a file
while I turn on OBBInAPK to true. Then I try to compare the installation location differences on difference device, on the international S7 version (which is working fine), I can find a folder under \sdcard\UE4Game\MyGameName\MyGameGame\
but on the USA S7, Nexus 6 or Nexus 4, I cannot find such folder, which I suspect the reason the fail to find file error come from. Can someone provide any information regarding how is the Unreal app installation location on Android works? And why on different devices, it seems the installation location is difference? Also, where is the main.obb.png suppose to be?
asked Aug 12 '16 at 08:38 PM in Packaging & Deployment
I found out the issue after many hours of debugging, the problem is that the main.obb.png inside the assets folder in the apk file is too big for other devices but somehow works for the international S7 (properly with different CPU architectures, Snapdragon vs Exynos, it also works on Nvidia Shield portable too).
The size of my main.obb.png is around 800Mb, and I have build an Android app using pure java to try to open the main.obb.png, and it also failed. I then artificially create an file with size around 800Mb and put it inside the assets folder and the app actually crash even before it starts. I then decrease the size of the file until around 200Mb to make the app run. So, I assume the Unreal app have a similar issue (again it works on international S7).
My solution is to separate the obb with the apk, and everything working now. My only doubt is that I don't understand why the international S7 and Nvidia Shield portable is capable to read asset data larger than 200Mb while others cannot.
Follow this question
Once you sign in you will be able to subscribe for any updates here