0

Just starting Unreal development for GearVR, and getting a strange error on the hello-world tutorial after several days of IDE setup and config. Hoping the powers of internet can guide me.

Working through this tutorial: https://docs.unrealengine.com/latest/INT/Platforms/GearVR/QuickStart/index.html

When I go to build on Android ETC2, I get a rather long list of build errors, terminating with the unhelpful error:

UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: [buildconfig] Generating BuildConfig class.
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: 
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: -pre-compile:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: 
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: -compile:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac] Compiling 78 source files to C:\Users\User\Documents\VR\GearVR_test\Intermediate\Android\APK\bin\classes
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac] C:\Users\User\Documents\VR\GearVR_test\Intermediate\Android\APK\src\com\android\vending\licensing\APKExpansionPolicy.java:20: error: package org.apache.http does not exist
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac] import org.apache.http.NameValuePair;
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac]                       ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac] C:\Users\User\Documents\VR\GearVR_test\Intermediate\Android\APK\src\com\android\vending\licensing\APKExpansionPolicy.java:21: error: package org.apache.http.client.utils does not exist
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac] import org.apache.http.client.utils.URLEncodedUtils;
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:     [javac]                                    ^
...
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: BUILD FAILED
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: C:\Users\User\AppData\Local\Android\sdk\tools\ant\build.xml:716: The following error occurred while executing this line:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: C:\Users\User\AppData\Local\Android\sdk\tools\ant\build.xml:730: Compile failed; see the compiler error output for details.
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: 
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: Total time: 29 seconds
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: UnrealBuildTool Exception: System.IO.FileNotFoundException: Could not find file 'C:\Users\User\Documents\VR\GearVR_test\Intermediate/Android/APK/bin/GearVR_test-debug.apk'.
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: File name: 'C:\Users\User\Documents\VR\GearVR_test\Intermediate/Android/APK/bin/GearVR_test-debug.apk'
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:    at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:    at UnrealBuildTool.UEDeployAndroid.MakeApk(AndroidToolChain ToolChain, String ProjectName, String ProjectDirectory, String OutputPath, String EngineDirectory, Boolean bForDistribution, String CookFlavor, Boolean bMakeSeparateApks, Boolean bIncrementalPackage, Boolean bDisallowPackagingDataInApk)
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:    at UnrealBuildTool.UEDeployAndroid.PrepTargetForDeployment(UEBuildTarget InTarget)
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool:    at UnrealBuildTool.UnrealBuildTool.DoPostStartupStuffThatCanAccessConfigs(String[] Arguments)
UATHelper: Packaging (Android (ETC2)): CommandUtils.Run: Run: Took 112.6859102s to run UnrealBuildTool.exe, ExitCode=5
UATHelper: Packaging (Android (ETC2)): Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:5): C:\Program Files (x86)\Epic Games\4.13\Engine\Binaries\DotNET\UnrealBuildTool.exe GearVR_test Android DebugGame -p
UATHelper: Packaging (Android (ETC2)): repfordeploy -project="C:\Users\User\Documents\VR\GearVR_test\GearVR_test.uproject" -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2016.09.04-17.16.25.txt' 
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary`2 EnvVars, SpewFilterCallbackType SpewFilterCallback)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.CommandUtils.RunAndLog(CommandEnvironment Env, String App, String CommandLine, String LogName, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary`2 EnvVars, SpewFilterCallbackType SpewFilterCallback)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary`2 EnvVars)
UATHelper: Packaging (Android (ETC2)):    at AndroidPlatform.PostBuildTarget(UE4Build Build, FileReference UProjectPath, String TargetName, String Config)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.UE4Build.BuildWithUBT(String TargetName, UnrealTargetPlatform TargetPlatform, String Config, FileReference UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary`2 EnvVars)
UATHelper: 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, Nullable`1 InChangelistNumberOverride, Dictiona
ry`2 InTargetToManifest)
UATHelper: Packaging (Android (ETC2)):    at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask)
UATHelper: Packaging (Android (ETC2)):    at BuildCookRun.DoBuildCookRun(ProjectParams Params)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.BuildCommand.Execute()
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.Automation.Process(String[] Arguments)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.Program.MainProc(Object Param)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.InternalUtils.RunSingleInstance(Func`2 Main, Object Param)
UATHelper: Packaging (Android (ETC2)):    at AutomationTool.Program.Main()
UATHelper: Packaging (Android (ETC2)): Program.Main: AutomationTool exiting with ExitCode=5 (5)
UATHelper: Packaging (Android (ETC2)): BUILD FAILED
PackagingResults:Error: Error Unknown Error

What can I do to fix the error above to get this to make an APK, and what should I do to understand and better google-diagnose these errors?

References with similar google search results for this error:

Mark O'Connor
  • 76,015
  • 10
  • 139
  • 185
Mittenchops
  • 18,633
  • 33
  • 128
  • 246
  • error: package org.apache.http does not exist. error: package org.apache.http.client.utils does not exist. Can you fix these errors? – Marson Mao Sep 09 '16 at 03:43
  • I don't think so. This is the default VR program, haven't added or taken away anything and wouldn't know where to start. – Mittenchops Sep 12 '16 at 23:58

1 Answers1

0

I don't have a full solution for you, but I do think I have a diagnosis for this issue (which I'm also encountering).

For some reason the Codeworks Android SDK setup includes elements that rely on an outdated version of org.apache.http . If you're using SDK 23 or above, this dependency is no longer included in the build setup (a legacy version is stored in an "optional" folder), but the Unreal build/packaging process still tries to include it.

I'm trying to figure out a fix for Unreal builds... the best I've found so far is to change all your build and packaging settings to target Android SDK and NDK 21 or below (a lot of people recommend 19, but 21 seems to work for me).

Unfortunately, this means that you can't take advantage of a lot of the VR optimizations included in the more recent Android SDKs, so I'm still looking for a better solution.

Here's an in-depth discussion of this issue aimed at general Android app development:

Android Gradle Apache HttpClient does not exist?

...but since with Unreal a lot of the Android build process is obfuscated or handled automatically by the engine, I can't yet figure out if there's a way to customize files like app.gradle to deal with this issue.

Hope this helps a little bit, anyway.

Community
  • 1
  • 1
PragmaOnce
  • 41
  • 2