Hello, thank you in advance. I really regret this bug; it might occur in MainActivity.java, because the latest WebView version is very sensitive and its security is very strict. I have already replaced the download file but still with the same version because this is just a small bug. If you are lazy to download the file because the size is large, you can modify MainActivity.java yourself.
Here is the file:
\AG APK Builder-win32-x64\resources\base_module\app\src\main\java\com\xxx\yyy\MainActivity.java
Replace all of this:
package com.xxx.yyy;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webView = new WebView(this);
WebSettings settings = webView.getSettings();
// Aktifkan JavaScript
settings.setJavaScriptEnabled(true);
// Aktifkan akses file
settings.setAllowFileAccess(true);
settings.setDomStorageEnabled(true);
// Tambahan penting untuk Android 11+ agar WebView bisa load file lokal
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
// Load index.html dari assets/www
webView.loadUrl("file:///android_asset/www/index.html");
setContentView(webView);
}
}
replace with the legacy version, remember not to duplicate
package com.xxx.yyy;
import android.os.Bundle;
import android.view.View;
import android.webkit.ConsoleMessage;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ===============================
// ENABLE WEBVIEW DEBUG (ADB)
// ===============================
WebView.setWebContentsDebuggingEnabled(true);
// ===============================
// INIT WEBVIEW
// ===============================
mWebView = new WebView(this);
// Fullscreen immersive (RPG safe)
mWebView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
);
// ===============================
// WEB SETTINGS (MV & MZ SAFE)
// ===============================
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setAllowFileAccess(true);
settings.setAllowContentAccess(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setMediaPlaybackRequiresUserGesture(false);
// Android 9+ (WAJIB untuk local file + JS)
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
// CACHE FIX (API BARU)
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
// Performance (MZ butuh ini)
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
// ===============================
// WEBVIEW CLIENT
// ===============================
mWebView.setWebViewClient(new WebViewClient());
// ===============================
// WEBCHROME CLIENT (JS ERROR LOG)
// ===============================
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage msg) {
android.util.Log.e(
"WEBVIEW",
msg.message()
+ " [Line " + msg.lineNumber()
+ "] " + msg.sourceId()
);
return true;
}
});
setContentView(mWebView);
// ===============================
// LOAD RPG MAKER
// ===============================
mWebView.loadUrl("file:///android_asset/www/index.html");
}
// ===============================
// KEEP FULLSCREEN
// ===============================
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && mWebView != null) {
mWebView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
);
}
}
@Override
protected void onResume() {
super.onResume();
if (mWebView != null) {
mWebView.onResume();
mWebView.postDelayed(() -> mWebView.requestFocus(), 200);
}
}
@Override
protected void onPause() {
if (mWebView != null) {
mWebView.onPause();
}
super.onPause();
}
}
I hope this can help fix your problem. If your problem isn't resolved, I would like a screenshot of the error from the built APK. Thank you.