Skip to content

WebUIActivity crashes on launch — NoSuchMethodException: FileChooserInterface.<init>(WXOptions) #87

Description

@Bouteillepleine

Summary

Opening any module''s WebUI crashes the activity during view attach, before the module content loads. The crash comes from the built-in FileChooserInterface being instantiated by reflection with a constructor signature (WXOptions) that does not exist on the resolved class. It is module-independent — the same modules open fine with the legacy engine ("WebUI MX").

Environment

  • WebUI-X-Portable v537-release (versionCode 537), package com.dergoogler.mmrl.wx.alpha
  • Android 16 (SDK 36), Android System WebView 150.0.7871.46
  • Device: OnePlus 15 (canoe), OxygenOS CPH2747_16.0.8.300
  • Root: KernelSU 4.1.0 (SukiSU/ReSukiSU)

Steps to reproduce

  1. Install any KernelSU module shipping a webroot/ WebUI (minimal config.json {"title":"X","icon":"icon.png"} is enough).
  2. Open its WebUI with WebUI-X (launches com.dergoogler.mmrl.wx.ui.activity.webui.WebUIActivity).

Expected

The module WebUI renders.

Actual

The activity window dies right after setContentView / onAttachedToWindow ("app died, no saved state", "Channel is unrecoverably broken"). The WebUI never loads. The same module works with the legacy WebUI engine.

Logcat (key stack trace)

E JavaScriptInterfaceImplementation.createNewWX(...): Failed to create WX instance for FileChooserInterface
E JavaScriptInterfaceImplementation.createNewWX(...): java.lang.NoSuchMethodException:
    com.dergoogler.mmrl.hybridwebui.interfaces.prebuilt.FileChooserInterface.<init>
    [class com.dergoogler.mmrl.webui.interfaces.WXOptions]
    at java.lang.Class.getConstructor0(Class.java:3387)
    at java.lang.Class.getDeclaredConstructor(Class.java:3069)
    at com.dergoogler.mmrl.ext.JavaScriptInterfaceExtKt.createNewWX(JavaScriptInterfaceExt.kt:16)
    at com.dergoogler.mmrl.webui.view.WebUIView.addJavascriptInterface(WebUIView.kt:267)
    at com.dergoogler.mmrl.wx.ui.activity.webui.WebUIActivity.init$lambda$4$lambda$3$lambda$2(WebUIActivity.kt:219)
    at com.dergoogler.mmrl.hybridwebui.HybridWebUI.setupDependencies(HybridWebUI.kt:106)
    at com.dergoogler.mmrl.hybridwebui.HybridWebUI.onAttachedToWindow(HybridWebUI.kt:77)
    at android.view.View.dispatchAttachedToWindow(View.java:23638)
    ...

Analysis

JavaScriptInterfaceExtKt.createNewWX reflectively resolves FileChooserInterface.<init>(com.dergoogler.mmrl.webui.interfaces.WXOptions), but the bundled com.dergoogler.mmrl.hybridwebui.interfaces.prebuilt.FileChooserInterface has no such constructor — a version skew between the hybridwebui and webui modules in this build. Since this prebuilt interface is injected for every module, no WebUI can open.

Suggested fixes: align the hybridwebui / webui versions, or guard createNewWX so a missing prebuilt-interface constructor is logged and skipped instead of crashing the activity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmedThis issue has been confirmed

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions