4.17 Exporting Daydream project with Gradle results in errors

I’m trying to upgrade my project to epics 4.17 build (from 4.15) and tried to use the new gradle support for Java compiling (checkbox in project settings → Android).

Unfortunately when doing a daydream export I get the following error in the log:

UATHelper: Packaging (Android (ETC2)): :app:generateReleaseSources UATHelper: Packaging (Android (ETC2)): :app:incrementalReleaseJavaCompilationSafeguard UATHelper: Packaging (Android (ETC2)): :app:compileReleaseJavaWithJavac UATHelper: Packaging (Android (ETC2)): :app:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.). UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:133: error: package com.google.vr.ndk.base does not exist UATHelper: Packaging (Android (ETC2)): import com.google.vr.ndk.base.GvrLayout; UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:134: error: package com.google.vr.ndk.base does not exist UATHelper: Packaging (Android (ETC2)): import com.google.vr.ndk.base.AndroidCompat; UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:135: error: package com.google.vr.ndk.base does not exist UATHelper: Packaging (Android (ETC2)): import com.google.vr.ndk.base.DaydreamApi; UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:635: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): private GvrLayout gvrLayout; UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: class GvrLayout UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:723: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): public DaydreamApi daydreamApi; UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: class DaydreamApi UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:724: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): public DaydreamApi getDaydreamApi() UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: class DaydreamApi UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:686: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): AndroidCompat.setSustainedPerformanceMode(_activity, true); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable AndroidCompat UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:699: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): AndroidCompat.setSustainedPerformanceMode(_activity, false); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable AndroidCompat UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1411: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): gvrLayout = new GvrLayout(this); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: class GvrLayout UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1445: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): AndroidCompat.setVrModeEnabled(this, true); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable AndroidCompat UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1456: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): AndroidCompat.setSustainedPerformanceMode(this, true); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable AndroidCompat UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1473: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): daydreamApi = DaydreamApi.create(this); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable DaydreamApi UATHelper: Packaging (Android (ETC2)): location: class GameActivity UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1482: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): DaydreamApi api = GameActivity.this.getDaydreamApi(); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: class DaydreamApi UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1645: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): AndroidCompat.setSustainedPerformanceMode(_activity, false); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable AndroidCompat UATHelper: Packaging (Android (ETC2)): Y:\app\src\main\java\com\epicgames\ue4\GameActivity.java:1658: error: cannot find symbol UATHelper: Packaging (Android (ETC2)): AndroidCompat.setSustainedPerformanceMode(_activity, true); UATHelper: Packaging (Android (ETC2)): ^ UATHelper: Packaging (Android (ETC2)): symbol: variable AndroidCompat UATHelper: Packaging (Android (ETC2)): Note: Some input files use or override a deprecated API. UATHelper: Packaging (Android (ETC2)): Note: Recompile with -Xlint:deprecation for details. UATHelper: Packaging (Android (ETC2)): 15 errors UATHelper: Packaging (Android (ETC2)): :app:compileReleaseJavaWithJavac FAILED UATHelper: Packaging (Android (ETC2)): FAILURE: Build failed with an exception. UATHelper: Packaging (Android (ETC2)): * What went wrong: UATHelper: Packaging (Android (ETC2)): Execution failed for task ':app:compileReleaseJavaWithJavac'. UATHelper: Packaging (Android (ETC2)): > Compilation failed; see the compiler error output for details. UATHelper: Packaging (Android (ETC2)): * Try: UATHelper: Packaging (Android (ETC2)): Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. UATHelper: Packaging (Android (ETC2)): BUILD FAILED

Note: exports fine with Ant.

Add this file: Engine/Source/ThirdParty/GoogleVR/lib/common_library/additions.gradle

dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
}

This will let Gradle know about the jar files in the libs directory. I have added this for the 4.17.2 update; didn’t make it in time for 4.17.1.