Help with... ue4/WebViewControl.java:122: error: cannot find symbol

I’m on a Mac (Ventura 13.1)
Unreal Engine 4.27 (Version: 4.27.2-18319896+++UE4+Release-4.27)
Android Studio 4.0
Android SDK Build Tools 30.0.3 and 29.0.2
Android NDK 21.4.7075529
Android Command Line Tools 9.0, 8.0, and 7.0

Maybe someone can help…

Here is the error I am getting when I’m trying to package things for Android:

UATHelper: Packaging (Android (ETC2)): > Task :app:compileDebugJavaWithJavac
UATHelper: Packaging (Android (ETC2)): The following annotation processors are not incremental: lifecycle-compiler-2.0.0.jar (androidx.lifecycle:lifecycle-compiler:2.0.0).
UATHelper: Packaging (Android (ETC2)): Make sure all annotation processors are incremental to improve your build speed.
UATHelper: Packaging (Android (ETC2)): /Users/kevin/Documents/Unreal Projects/GIV_Cockpit/Intermediate/Android/armv7/gradle/app/src/main/java/com/epicgames/ue4/WebViewControl.java:122: error: cannot find symbol
UATHelper: Packaging (Android (ETC2)): webView.getSettings().setAppCacheMaxSize( 10 * 1024 * 1024 );
UATHelper: Packaging (Android (ETC2)): ^
UATHelper: Packaging (Android (ETC2)): symbol: method setAppCacheMaxSize(int)
UATHelper: Packaging (Android (ETC2)): location: class WebSettings
UATHelper: Packaging (Android (ETC2)): /Users/kevin/Documents/Unreal Projects/GIV_Cockpit/Intermediate/Android/armv7/gradle/app/src/main/java/com/epicgames/ue4/WebViewControl.java:123: error: cannot find symbol
UATHelper: Packaging (Android (ETC2)): webView.getSettings().setAppCachePath(GameActivity._activity.getApplicationContext().getCacheDir().getAbsolutePath() );
UATHelper: Packaging (Android (ETC2)): ^
UATHelper: Packaging (Android (ETC2)): symbol: method setAppCachePath(String)
UATHelper: Packaging (Android (ETC2)): location: class WebSettings
UATHelper: Packaging (Android (ETC2)): /Users/kevin/Documents/Unreal Projects/GIV_Cockpit/Intermediate/Android/armv7/gradle/app/src/main/java/com/epicgames/ue4/WebViewControl.java:125: error: cannot find symbol
UATHelper: Packaging (Android (ETC2)): webView.getSettings().setAppCacheEnabled( true );
UATHelper: Packaging (Android (ETC2)): ^
UATHelper: Packaging (Android (ETC2)): symbol: method setAppCacheEnabled(boolean)
UATHelper: Packaging (Android (ETC2)): location: class WebSettings
PackagingResults: Error: cannot find symbol
PackagingResults: Error: cannot find symbol
PackagingResults: Error: cannot find symbol
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)): 3 errors
UATHelper: Packaging (Android (ETC2)): > Task :app:compileDebugJavaWithJavac 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:compileDebugJavaWithJavac’.
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. Run with --scan to get full insights.
UATHelper: Packaging (Android (ETC2)): * Get more help at https://help.gradle.org
UATHelper: Packaging (Android (ETC2)): BUILD FAILED in 22s
UATHelper: Packaging (Android (ETC2)): 32 actionable tasks: 2 executed, 30 up-to-date
UATHelper: Packaging (Android (ETC2)): ERROR: /bin/sh failed with args -c ‘“/Users/kevin/Documents/Unreal Projects/GIV_Cockpit/Intermediate/Android/armv7/gradle/gradlew” :app:assembleDebug’
UATHelper: Packaging (Android (ETC2)): (see /Users/kevin/Library/Logs/Unreal Engine/LocalBuildLogs/Log.txt for full exception trace)
PackagingResults: Error: /bin/sh failed with args -c ‘“/Users/kevin/Documents/Unreal Projects/GIV_Cockpit/Intermediate/Android/armv7/gradle/gradlew” :app:assembleDebug’
UATHelper: Packaging (Android (ETC2)): AutomationTool exiting with ExitCode=1 (Error_Unknown)
UATHelper: Packaging (Android (ETC2)): RunUAT ERROR: AutomationTool was unable to run successfully.
PackagingResults: Error: AutomationTool was unable to run successfully.
PackagingResults: Error: Unknown Error

不要使用安卓 33的sdk,可以使用安卓32,在安卓33 中setAppCacheMaxSize这个函数已经被删除了.如果需要使用安卓33的sdk需要修改java文件.
修改如下 打开这个路径UE_4.27\Engine\Build\Android\Java\src\com\epicgames\ue4
打开WebViewControl.java这个文件将
webView.getSettings().setAppCacheMaxSize( 10 * 1024 * 1024 );
webView.getSettings().setAppCachePath(GameActivity._activity.getApplicationContext().getCacheDir().getAbsolutePath() );
webView.getSettings().setAppCacheEnabled( true );
删除或者注释掉添加这行代码
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
完整代码如下:
// create the WebView
webView = new GLWebView(GameActivity._activity);
webView.setWebViewClient(new ViewClient());
webView.setWebChromeClient(new ChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
//webView.getSettings().setAppCacheMaxSize( 10 * 1024 * 1024 );
//webView.getSettings().setAppCachePath(GameActivity._activity.getApplicationContext().getCacheDir().getAbsolutePath() );
webView.getSettings().setAllowFileAccess( true );
//webView.getSettings().setAppCacheEnabled( true );
webView.getSettings().setAllowContentAccess( true );
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setDomStorageEnabled(bEnableDomStorage);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

2 Likes