Я написал веб-приложение для некоторых устройств Android 4.2 с пользовательской клавиатурой приложения. На самом деле приложение работает без ошибок на устройствах с Android 4.2.
Я знаю, что это очень старая версия для Android, поэтому я приобрел новое устройство с Android 7.1.2, но, к сожалению, приложение не работает на этом устройстве.
В следующем примере кода я создаю InputConnection для WebView и предполагаю, что это ссылка на мою пользовательскую клавиатуру.
Это код, который превращается в ошибку:
val ic = mWebView.onCreateInputConnection(EditorInfo())
mMyKeyboard.setInputConnection(ic)
Код "setInputConnection" объекта "MyKeyboard"
fun setInputConnection(ic: InputConnection) {
inputConnection = ic
}
сообщение об ошибке:
E / AndroidRuntime: FATAL EXCEPTION: main
Процесс: com.example.aaa.bbb, PID: 5012
java.lang.RuntimeException: Невозможно начать действие
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2666)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2727)
на android.app.ActivityThread.-wrap12 (ActivityThread.java)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1478)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:154)
на android.app.ActivityThread.main (ActivityThread.java:6123)
в java.lang.reflect.Method.invoke (родной метод)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:889)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:779)
Вызывается: java.lang.IllegalStateException: ic не должен быть нулевым
в com.example.huf.ifsscan.MainActivity.onCreate (MainActivity.kt: 59)
на android.app.Activity.performCreate (Activity.java:6723)
на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119)
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2619)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2727)
на android.app.ActivityThread.-wrap12 (ActivityThread.java)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1478)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:154)
на android.app.ActivityThread.main (ActivityThread.java:6123)
в java.lang.reflect.Method.invoke (родной метод)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:889)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:779)
E / libEGL: validate_display: 99 ошибка 3008 (EGL_BAD_DISPLAY)
В настоящее время я понятия не имею, почему это происходит.
Документация для onCreateInputConnection объекта WebView показывает, что все должно быть в порядке.
Разработчики Android | Webview
Нет ничего другого, если я скомпилирую его под API 19 (Android 4.2) или API 25 (7.1).
Кто-нибудь знает, какие могут быть проблемы?
Заранее спасибо