I wrote a webview application for some Android 4.2 device with a custom inapp keyboard. In fact, the app runs without any error on devices with Android 4.2.
I know this is a very old android version, this is reason why I got now a new device with Android 7.1.2, but unfortunately, the app doesn't work on this device.
In the following code example I create an InputConnection to the WebView and assume that reference to my custom keyboard. This is the code who turns into an error:
val ic = mWebView.onCreateInputConnection(EditorInfo())
mMyKeyboard.setInputConnection(ic)
Code of "setInputConnection" of object "MyKeyboard"
fun setInputConnection(ic: InputConnection) {
inputConnection = ic
}
error message:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.aaa.bbb, PID: 5012 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aaa.bbb/com.example.aaa.bbb.MainActivity}: java.lang.IllegalStateException: ic must not be null at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.IllegalStateException: ic must not be null at com.example.huf.ifsscan.MainActivity.onCreate(MainActivity.kt:59) at android.app.Activity.performCreate(Activity.java:6723) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2619) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY)
Currently I have no idea why this happens. The documentation for "onCreateInputConnection" of WebView object show it should be fine.
There is no different if I compile it under API 19 (Android 4.2) or API 25 (7.1).
Does anyone have any idea what the problems might be?
Thanks in advance