Failed to open descriptor file (android)

Hi, I encounter the same problem. But now I can bypass this problem by adjusting the packing configuration, so I’m not going to spend more time on this issue. However, maybe the following notes can help further investigations:

  1. This problem only occurs to me when the targeting platform is set [API 30] and then click “Launch (on Android)” in the editor. I don’t know why this can happen because my mobile phone supports API 30.

  2. Among other attempts, I pack the game (developer/shipping) for Android API 30, and then launch that APK with Android Studio(AS), there’s no error message this time. I also change the targeting API version to 28, there’s no error either launching with UE or AS.

  3. With AS, I debugged the APK with “Profile or debug APK”. Several APK’s exist in my disk: the packed APK locates in the specified folder, without much doubt; whereas another APK is generated in the UE project folder as the result of “Launch” in the UE editor, it is placed at “xxx/Binaries/Android/xxx.apk”. When I debug this APK, which is generated by “Launch” in UE with API 30, the error occurs. (So the APK is problematic?)

  4. Through debug, the problem arises when opening the .uproject file (obvious), at

  • LaunchEngineLoop.cpp Line 2012
    if (!IProjectManager::Get().LoadProjectFile(FPaths::GetProjectFilePath()))

  • FileHelper.cpp Line 192
    TUniquePtr Reader(IFileManager::Get().CreateFileReader(Filename, ReadFlags));

The reader object is null, hence the error.

In debug sessions of both working and problematic APK’s, the “FileName” to open is “…/…/…/FpsDemo.uproject”, one just opens and reads whereas the other fails. I don’t see the reason, so I leave the problem here.

  1. I suspect this may either be an access permission problem, or the UE launch for Android API 30 fails to transmit components to the device. I didn’t repeat the test on other mobile phones, so this can also be caused by my device…

Hope this helps!

2 Likes