Skip to content

Fixing runtime errors

Simão Gomes Viana edited this page Jul 11, 2025 · 5 revisions

Failed to load WebView provider: No WebView installed

Make sure a WebView apk is installed. Usually there'll be a external/chromium-webview in your source tree.

To troubleshoot this issue, try following steps first:

  • adb shell am start -n com.android.settings/com.android.settings.WebViewImplementation -> tap on the webview
  • adb shell am start -n com.android.webview/org.chromium.android_webview.devui.MainActivity -> if this does not start an activity, there's a problem with the WebView app
  • adb shell pm list packages -a | grep webview -> if this does not give you a com.android.webview package, then WebView is missing.

This commit is necessary in 15: https://review.lineageos.org/c/LineageOS/android_vendor_lineage/+/404078

Pokémon TCG Pocket (jp.pokemon.pokemontcgp) crash

05-08 23:09:32.152 10064 10064 F DEBUG   : Revision: '0'
05-08 23:09:32.152 10064 10064 F DEBUG   : ABI: 'arm64'
05-08 23:09:32.152 10064 10064 F DEBUG   : Timestamp: 2025-05-08 23:09:32.020420081+0200
05-08 23:09:32.152 10064 10064 F DEBUG   : Process uptime: 9s
05-08 23:09:32.152 10064 10064 F DEBUG   : Cmdline: jp.pokemon.pokemontcgp
05-08 23:09:32.152 10064 10064 F DEBUG   : pid: 9375, tid: 9413, name: UnityMain  >>> jp.pokemon.pokemontcgp <<<
05-08 23:09:32.152 10064 10064 F DEBUG   : uid: 10266
05-08 23:09:32.152 10064 10064 F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
05-08 23:09:32.152 10064 10064 F DEBUG   : pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
05-08 23:09:32.152 10064 10064 F DEBUG   : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x0000000400000003
05-08 23:09:32.152 10064 10064 F DEBUG   :     x0  0000007807d46980  x1  0000000000000000  x2  0000000000000000  x3  0000000000000000
05-08 23:09:32.152 10064 10064 F DEBUG   :     x4  0000007821a421b8  x5  0000007821a421b4  x6  0000000000000000  x7  0000000000000000
05-08 23:09:32.152 10064 10064 F DEBUG   :     x8  0000000000000063  x9  00000079d17b69a4  x10 00000079c8b52dcc  x11 0000000000000004
05-08 23:09:32.152 10064 10064 F DEBUG   :     x12 0000000000000000  x13 0000000000000010  x14 b400007b11828010  x15 00000000ffffe322
05-08 23:09:32.152 10064 10064 F DEBUG   :     x16 00000079d0ba5d10  x17 0000007d3645d040  x18 0000000000000050  x19 0000007821a12da0
05-08 23:09:32.152 10064 10064 F DEBUG   :     x20 0000007821a42180  x21 0000000000000001  x22 00000079c8b52ed0  x23 00000079d12c2640
05-08 23:09:32.152 10064 10064 F DEBUG   :     x24 0000007913c99368  x25 00000079c8b61040  x26 00000079c8b53714  x27 00000079d1317b20
05-08 23:09:32.152 10064 10064 F DEBUG   :     x28 00000079d13057b0  x29 0000000200000001
05-08 23:09:32.152 10064 10064 F DEBUG   :     lr  0000000400000003  sp  00000079c8b52de0  pc  0000000400000003  pst 0000000060001000
05-08 23:09:32.152 10064 10064 F DEBUG   : 1 total frames
05-08 23:09:32.152 10064 10064 F DEBUG   : backtrace:
05-08 23:09:32.152 10064 10064 F DEBUG   :       #00 pc 0000000400000003  <unknown>

We don't really know why it crashes. On XOS 15.1 it worked on Spacewar, but not on Pong. On XOS 15.2 it does not work on both. The game crashes after running for a few seconds. It does not crash when internet is disabled.

There is a suspicion that the game is able to detect the presence of a custom ROM and thus refuses to work – however, it is weird that the crash originates from IL2CPP which seems to be part of Unity. The fact that pc is always 0000000400000003 and that is the only frame that exists, a theory could be that this actually means 403 Forbidden, which would explain the custom ROM thing, but we can't say for sure.

Fact of the matter is that there are no useful logs, however, some people have reported the same issue independently on a Google Pixel. I can't find the website anymore, but it was on the pokemon forum or something.

Setting SELinux to permissive does not help.

Solution: Build user instead of userdebug.

Video recording not working

On Spacewar, video recording would not work. When pressing the record button, the camera app hangs, goes black, closes and the session is aborted. Further attempts to open the camera feel sluggish at first. To solve this, make sure following commits are present:

https://github.com/LineageOS/android_hardware_interfaces/commit/177a5b89b342f1f336694d15bbaeaa29eab5ff9d https://git.halogenos.org/halogenOS/android_frameworks_av/-/commit/9815612e496c698e6027ffbb45683482dc3a900e https://git.halogenos.org/halogenOS/android_frameworks_av/-/commit/2782da15d49db9d90f576acc5bab1459542db627

com.android.phone crash due to java.lang.ArrayIndexOutOfBoundsException

07-11 17:23:11.404 13337 13337 D AndroidRuntime: Shutting down VM
07-11 17:23:11.404 13337 13337 E AndroidRuntime: FATAL EXCEPTION: main
07-11 17:23:11.404 13337 13337 E AndroidRuntime: Process: com.android.phone, PID: 13337
07-11 17:23:11.404 13337 13337 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at com.android.internal.telephony.uicc.UiccController.onGetIccCardStatusDone(UiccController.java:1091)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at com.android.internal.telephony.uicc.UiccController.handleMessage(UiccController.java:640)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:110)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:248)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:338)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:9062)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
07-11 17:23:11.404 13337 13337 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)

Crash introduced by commit in frameworks/opt/telephony:

commit 42e37234cee15c9f3fcfac0532110abfc8843b99
Author: sandeepjs <[email protected]>
Date:   Tue Feb 25 18:32:02 2025 +0000

    Removing the overwrite logic of sim slot length to mCi's length

    This fix was added because of crash that can be seen if “config_num_physical_slots” is not configured properly,
    Its the OEM responsibility to configure this property .

    Test: b/398782613
    Bug: b/396750634
    Flag: EXEMPT bug fix
    Change-Id: Ia0ce90e5914f30b6b88212e164a742417f39021f

diff --git a/src/java/com/android/internal/telephony/uicc/UiccController.java b/src/java/com/android/internal/telephony/uicc/UiccController.java
index 9db25b6532..bc3a4d6202 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccController.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccController.java
@@ -277,11 +277,6 @@ public class UiccController extends Handler {
         if (DBG) {
             logWithLocalLog("config_num_physical_slots = " + numPhysicalSlots);
         }
-        // Minimum number of physical slot count should be equals to or greater than phone count,
-        // if it is less than phone count use phone count as physical slot count.
-        if (numPhysicalSlots < mCis.length) {
-            numPhysicalSlots = mCis.length;
-        }

         mTelephonyManager = mContext.getSystemService(TelephonyManager.class);

Solution: Set config_num_physical_slots in framework overlay

See: https://git.halogenos.org/halogenOS/android_device_nothing_Spacewar/-/commit/0005496a522ac5bcfbd99d9dcdf1dc626fda31ae

Clone this wiki locally