oculus-samples / Unreal-MRUtilityKitSample

MRUK ("Mixed Reality Utility Kit") provides a rich set of utilities/tools on top of Scene API to perform common operations when building spatially-aware apps in Unreal. The Oculus SDK and other supporting material is subject to the Oculus proprietary license.
Other
6 stars 1 forks source link

Shipping crash #4

Open alefriant opened 1 week ago

alefriant commented 1 week ago

Hey guys! I downloaded your sample and it packages perfect in development, but when I tried to build it for shipping to try it in the Oculus Store, the build crashes, could you help me with that please? I tried SharedSpaces with exactly the same settings in UE543-v68 and works perfect in Shipping mode.

I'm using the Meta-Oculus fork 5.4.3-v100-v68 Settings: SDK/NDK etc. android-32 NDK API 29 (I use the same settings for some games I have in Store or in the App Labs.)

image

Here is the log when it crashes in shipping mode:

13 actionable tasks: 1 executed, 12 up-to-date FAILURE: Build failed with an exception.

BUILD FAILED in 9s

Task :app:ueAFSProjectAssembleRelease FAILED

FAILURE: Build failed with an exception. 80 actionable tasks: 11 executed, 69 up-to-date

BUILD FAILED in 36s

cmd.exe failed with args /c "F:\Unreal-MRUtilityKitSample-main\Intermediate\Android\arm64\gradle\rungradle.bat" :app:assembleRelease (see F:\Oculus_UE543\Engine\Programs\AutomationTool\Saved\Logs\Log.txt for full exception trace)

BuildException: cmd.exe failed with args /c "F:\Unreal-MRUtilityKitSample-main\Intermediate\Android\arm64\gradle\rungradle.bat" :app:assembleRelease at UnrealBuildTool.UEDeployAndroid.RunCommandLineProgramWithExceptionAndFiltering(String WorkingDirectory, String Command, String Params, ILogger Logger, String OverrideDesc, Boolean bUseShellExecute) in F:\Oculus_UE543\Engine\Source\Programs\UnrealBuildTool\Platform\Android\UEDeployAndroid.cs:line 1935 at UnrealBuildTool.UEDeployAndroid.MakeApk(AndroidToolChain ToolChain, String ProjectName, TargetType InTargetType, String ProjectDirectory, String OutputPath, String EngineDirectory, Boolean bForDistribution, String CookFlavor, UnrealTargetConfiguration Configuration, Boolean bMakeSeparateApks, Boolean bIncrementalPackage, Boolean bDisallowPackagingDataInApk, Boolean bDisallowExternalFilesDir, Boolean bSkipGradleBuild, Boolean bIsArchive, Boolean bIsFromUAT, Boolean bSkipUECommandLineMatch) in F:\Oculus_UE543\Engine\Source\Programs\UnrealBuildTool\Platform\Android\UEDeployAndroid.cs:line 5248 at UnrealBuildTool.UEDeployAndroid.PrepForUATPackageOrDeploy(FileReference ProjectFile, String ProjectName, DirectoryReference ProjectDirectory, String ExecutablePath, String EngineDirectory, Boolean bForDistribution, String CookFlavor, UnrealTargetConfiguration Configuration, Boolean bIsDataDeploy, Boolean bSkipGradleBuild, Boolean bIsArchive, Boolean bSkipUECommandLineMatch) in F:\Oculus_UE543\Engine\Source\Programs\UnrealBuildTool\Platform\Android\UEDeployAndroid.cs:line 5874 at AndroidPlatform.Package(ProjectParams Params, DeploymentContext SC, Int32 WorkingCL) in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\Android\AndroidPlatform.Automation.cs:line 0 at AutomationScripts.Project.Package(ProjectParams Params, Int32 WorkingCL) in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\Scripts\PackageCommand.Automation.cs:line 51 at BuildCookRun.DoBuildCookRun(ProjectParams Params) in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 237 at BuildCookRun.ExecuteBuild() in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 43 at AutomationTool.BuildCommand.Execute() in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 345 at AutomationTool.BuildCommand.ExecuteAsync() in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 354 at AutomationTool.Automation.ExecuteAsync(List1 CommandsToExecute, Dictionary2 Commands) in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 270 at AutomationTool.Automation.ProcessAsync(ParsedCommandLine AutomationToolCommandLine, StartupTraceListener StartupListener, HashSet`1 ScriptModuleAssemblies) in F:\Oculus_UE543\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 164

AutomationTool executed for 0h 1m 41s AutomationTool exiting with ExitCode=1 (Error_Unknown)

felixweilbach commented 1 week ago

I can not reproduce your problem.

It looks like the shipping fails because of the AndroidManifest. In the MRUK sample we do not do any changes to the android manifest besides adding the USE_SCENE permission. The Unreal Engine Meta fork which you are using does some changes to the manifest. But I couldn't reproduce your problem with the Unreal Engine fork from Meta. Did you do any changes that could influence the Manifest generation? Is it possible to get a bit more information what exactly failed during parsing of the manifest?

Just for reference this is what I tried to reproduce the problem:

alefriant commented 1 week ago

Hey @felixweilbach Seems I had a problem with the manifest. Thanks for your giving me a second opinion with your steps, I started from zero and it works.

I have another problem now: Can I remove all the experimental plugins it has enabled? I found a few of them, but no idea which of them are being used, BaseCharacterFXEditor as example, makes reference to ChaosEditor. It has:

image

felixweilbach commented 1 week ago

It should not have any dependencies to the modules you mentioned, and it shouldn't make use of any experimental APIs from Epic. I will double check that.

alefriant commented 6 days ago

Thank you!!