[Gear VR] Submission Validator bug and another bug

I wanted to draw some more attention to the following bug:

[Gear VR] Oculus Submission Validator error: Target SDK version is not 19 (targetSdkVersion)

Doing a “for distribution” export for GearVR and using the Oculus Submission Validator I get the following error:

Target SDK version is not 19 (targetSdkVersion)

Which settings are required to remove the error? This is with the default:

  • SDK API Level: latest
  • NDK API Level: latest

When I tried:

  • SDK API level: matchNDK or android-19
  • NDK API level: android-19

I receive a build error:


   MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: [1/1] clang++.exe UE4Game-Android-Shipping-armv7-es2.so
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: Runtime/Core/Public\GenericPlatform/GenericPlatformMath.h:234: error: undefined reference to 'srand'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: Runtime/Core/Public\GenericPlatform/GenericPlatformMath.h:234: error: undefined reference to 'srand'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime\Core\Private\Android/AndroidMisc.cpp:408: error: undefined reference to 'sigemptyset'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\GenericPlatform/GenericPlatformMath.h:231: error: undefined reference to 'rand'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\Android/AndroidString.h:294: error: undefined reference to 'atof'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\Android/AndroidString.h:294: error: undefined reference to 'atof'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\Android/AndroidString.h:303: error: undefined reference to 'atof'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\GenericPlatform/GenericPlatformMath.h:231: error: undefined reference to 'rand'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\GenericPlatform/GenericPlatformMath.h:231: error: undefined reference to 'rand'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\GenericPlatform/GenericPlatformMath.h:231: error: undefined reference to 'rand'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Runtime/Core/Public\Android/AndroidString.h:294: error: undefined reference to 'atof'
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: -------- End Detailed Actions Stats -----------------------------------------------------------
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Binaries\Android\UE4Game-Android-Shipping-armv7-es2.so
    MainFrameActions: Packaging (Android (ETC2)): UnrealBuildTool: Total build time: 43.65 seconds
    MainFrameActions: Packaging (Android (ETC2)): CommandUtils.Run: Run: Took 43.7052773s to run UnrealBuildTool.exe, ExitCode=5
    MainFrameActions: Packaging (Android (ETC2)): BuildCommand.Execute: ERROR: BUILD FAILED
    MainFrameActions: Packaging (Android (ETC2)): Program.Main: ERROR: AutomationTool terminated with exception:
    MainFrameActions: Packaging (Android (ETC2)): Program.Main: ERROR: Exception in AutomationUtils.Automation: Command failed (Result:5): U:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Binaries\DotNET\UnrealBuildTool.exe UE4Game Android Shipping   -noxge -NoHotReloadFromIDE -ignorejunk. See logfile for details: 'UnrealBuildTool-2015.09.28-20.37.12.txt' 
    MainFrameActions: Packaging (Android (ETC2)): Stacktrace:    at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary`2 EnvVars) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\ProcessUtils.cs:line 800
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary`2 EnvVars) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\UBTUtils.cs:line 50
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.UE4Build.BuildWithUBT(String ProjectName, String TargetName, UnrealTargetPlatform TargetPlatform, String Config, String UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary`2 EnvVars) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\UE4Build.cs:line 347
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable`1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, Dictionary`2 PlatformEnvVars) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\UE4Build.cs:line 1459
    MainFrameActions: Packaging (Android (ETC2)):    at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\Scripts\BuildProjectCommand.Automation.cs:line 114
    MainFrameActions: Packaging (Android (ETC2)):    at BuildCookRun.DoBuildCookRun(ProjectParams Params) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 209
    MainFrameActions: Packaging (Android (ETC2)):    at BuildCommand.Execute() in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 37
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 392
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.Automation.Process(String] CommandLine) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 360
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.Program.MainProc(Object Param) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\Program.cs:line 135
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.InternalUtils.RunSingleInstance(Action`1 Main, Object Param) in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\AutomationUtils\Utils.cs:line 708
    MainFrameActions: Packaging (Android (ETC2)):    at AutomationTool.Program.Main() in u:\UnrealEngine\GitHub\4.9_Branch\UnrealEngine\Engine\Source\Programs\AutomationTool\Program.cs:line 53
    MainFrameActions: Packaging (Android (ETC2)): ProcessManager.KillAll: Trying to kill 0 spawned processes.
    MainFrameActions: Packaging (Android (ETC2)): Program.Main: AutomationTool exiting with ExitCode=5
    MainFrameActions: Packaging (Android (ETC2)): Domain_ProcessExit
    MainFrameActions: Packaging (Android (ETC2)): AutomationToolLauncher exiting with ExitCode=5
    MainFrameActions: Packaging (Android (ETC2)): copying UAT log files...
    MainFrameActions: Packaging (Android (ETC2)): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
    MainFrameActions: Packaging (Android (ETC2)): BUILD FAILED
    PackagingResults:Error: Error Unknown Error

2.
Another bug which could I guess be worked around by displaying a black panel in front of the camera for a short period before showing anything else:

but makes you go crosseyed for a brief moment everything you start a UE4 app. This only started for me in 4.9 on my Exynos Note 4

I came across another bug where you also need to explicitly mention permissions for memory read & write.
If someone comes across this bug, consider adding this to your ‘ManifestRequirementsOverride.txt’

<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE”/>
<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/>

4.10 adds the targetSdkVersion and both WRITE_EXTERNAL_STORAGE and READ_EXTERNAL_STORAGE are added for GearVR.

Distribution build for GearVR also has an option to remove the osigs from assets and enable the entitlement checks needed for the store and for upcoming preview #4 (not just released #3) adds the android:installLocation=“internalOnly” attribute to the <manifest> node.

Preview #3 now includes Oculus Mobile SDK 0.6.2.0.

Thanks Chris for the info!