Search code examples
androidwebviewandroid-webviewactivity-manager

Android WebView got E/ActivityManager: ANR error when used Custom Keyboard


I'm trying to typing in webView by load simple URL (ex : using search in www.google.com). Then my apps suddenly force closed with this following error I was found in the logcat :

2020-12-03 09:51:52.971 1952-1994/? E/ActivityManager: ANR in com.example.dev
PID: 15463
Reason: Input dispatching timed out (InputMethod, Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 1. Wait queue head age: 8139.8ms.)
Load: 8.15 / 8.47 / 6.62
CPU usage from 0ms to 8150ms later (2020-12-03 09:51:44.750 to 2020-12-03 09:51:52.900):
14% 1952/system_server: 7.4% user + 7.4% kernel / faults: 7633 minor 8 major
13% 15463/com.example.dev: 8.3% user + 4.9% kernel / faults: 6864 minor 1 major
2.1% 1158/media.codec: 1.5% user + 0.5% kernel / faults: 31058 minor
8% 3217/cnss_diag: 6.7% user + 1.3% kernel
4.5% 15559/com.google.android.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0: 3.9% user + 0.6% kernel / faults: 892 minor
0% 1183/media.swcodec: 0% user + 0% kernel / faults: 10006 minor
0% 5046/com.google.android.inputmethod.latin: 0% user + 0% kernel / faults: 3681 minor
0.4% 154/kswapd0: 0% user + 0.4% kernel
2% 758/surfaceflinger: 1.1% user + 0.9% kernel / faults: 621 minor
2% 2482/com.android.phone: 1.1% user + 0.9% kernel / faults: 1926 minor
2% 5358/kworker/u16:15: 0% user + 2% kernel
1.5% 725/[email protected]: 1.5% user + 0% kernel / faults: 33 minor
1.4% 6/kworker/u16:0: 0% user + 1.4% kernel
1.4% 449/mmc-cmdqd/0: 0% user + 1.4% kernel
0.2% 1098/media.extractor: 0.1% user + 0% kernel / faults: 3943 minor
1.4% 1197/kworker/u16:14: 0% user + 1.4% kernel
1.4% 15107/com.microsoft.teams: 0.9% user + 0.4% kernel / faults: 2184 minor 5 major
1.2% 3188/adbd: 0% user + 1.2% kernel / faults: 3 minor
0.1% 16114/com.google.android.apps.turbo: 0.1% user + 0% kernel / faults: 1780 minor 1 major
0.8% 591/logd: 0.1% user + 0.7% kernel / faults: 19 minor
0.7% 443/cfinteractive: 0% user + 0.7% kernel
0.7% 3242/irq/61-1008000.: 0% user + 0.7% kernel
0.6% 1/init: 0.3% user + 0.2% kernel / faults: 111 minor
0.6% 715/[email protected]: 0.1% user + 0.4% kernel / faults: 192 minor
0.6% 2328/scheduler_threa: 0% user + 0.6% kernel
0.4% 290/kgsl_worker_thr: 0% user + 0.4% kernel
0% 1212/tombstoned: 0% user + 0% kernel / faults: 38 minor
0.4% 2173/com.android.bluetooth: 0.1% user + 0.3% kernel / faults: 187 minor
0.4% 4030/com.google.android.gms: 0.3% user + 0.1% kernel / faults: 274 minor
0.3% 79/smem_native_rpm: 0% user + 0.3% kernel
0.3% 721/[email protected]: 0.1% user + 0.2% kernel / faults: 147 minor
0.3% 14780/kworker/0:2: 0% user + 0.3% kernel
0.3% 16010/logcat: 0.3% user + 0% kernel
0.2% 7/rcu_preempt: 0% user + 0.2% kernel
0.2% 113/kworker/u17:0: 0% user + 0.2% kernel
0% 707/[email protected]: 0% user + 0% kernel / faults: 52 minor
0.2% 1026/jbd2/dm-2-8: 0% user + 0.2% kernel
0% 1070/zygote: 0% user + 0% kernel / faults: 57 minor
0.2% 1103/netd: 0.1% user + 0.1% kernel / faults: 141 minor 8 major
0.2% 1157/wificond: 0% user + 0.2% kernel
0.2% 1346/msm_irqbalance: 0.1% user + 0.1% kernel / faults: 24 minor
0.2% 2194/com.android.systemui: 0.2% user + 0% kernel / faults: 196 minor
0% 8/rcu_sched: 0% user + 0% kernel
0.1% 10/rcuop/0: 0% user + 0.1% kernel
0.1% 18/rcuop/1: 0% user + 0.1% kernel
0.1% 25/rcuop/2: 0% user + 0.1% kernel
0% 33/rcuos/3: 0% user + 0% kernel
0.1% 39/rcuop/4: 0% user + 0.1% kernel
0% 40/rcuos/4: 0% user + 0% kernel
0% 53/rcuop/6: 0% user + 0% kernel
0% 54/rcuos/6: 0% user + 0% kernel
0% 81/kworker/4:1: 0% user + 0% kernel
0.1% 116/kworker/u17:1: 0% user + 0.1% kernel
0% 215/hwrng: 0% user + 0% kernel
0.1% 580/ueventd: 0.1% user + 0% kernel / faults: 11 minor
0.1% 593/hwservicemanager: 0.1% user + 0% kernel / faults: 55 minor
0% 595/[email protected]: 0% user + 0% kernel / faults: 60 minor
0.1% 705/[email protected]: 0.1% user + 0% kernel / faults: 1 minor
0.1% 714/[email protected]: 0% user + 0.1% kernel

What I found :

  1. this error only occured when I start open my keyboard and typing in webView, no issue in other menu or features
  2. using different apps with my custom keyboard, opening webView and typing in it is working, so I assuming something wrong with my webView

Any idea what causes this error? and How to find the root cause? or any solution to fix this issue


Solution

  • SOLVED

    the issue caused by to many process in main thread as My Custom Keyboard is in the same Process with the WebView (because it's still in the same apps). I'm trying using a high-end device with better RAM and better CPU, and I found it can survived from Force Closed but still got a laggy typing callback, so I minimize the possibilities to this Warning in my Log :

    2020-12-03 14:41:48.700 23019-23019/com.example.dev W/InputConnectionWrapper.ICC: Timed out waiting on IInputContextCallback
    2020-12-03 14:41:48.745 23019-23019/com.example.dev I/Choreographer: Skipped 239 frames!  The application may be doing too much work on its main thread.
    

    looking toward this issue I found another developer has experienced a similar problem see : Timed out waiting on IInputContextCallback with custom keyboard on Android

    So the solution is to create a separate process between my Custom Keyboard with the opened WebView by adding attribute android:process=":processname"
    (process name can be anything, ref: https://developer.android.com/guide/topics/manifest/activity-element)

    In my case I choose my keyboard service as the separate process and the problem gone