我为一些带有自定义 inapp 键盘的 Android 4.2 设备编写了一个 webview 应用程序。事实上,该应用程序在运行 Android 4.2 的设备上运行时没有任何错误。
我知道这是一个非常旧的 android 版本,这就是为什么我现在有了 Android 7.1.2 的新设备的原因,但不幸的是,该应用程序无法在此设备上运行。
在下面的代码示例中,我创建了一个到 WebView 的 InputConnection,并假定它引用了我的自定义键盘。这是变成错误的代码:
val ic = mWebView.onCreateInputConnection(EditorInfo())
mMyKeyboard.setInputConnection(ic)
对象“MyKeyboard”的“setInputConnection”代码
fun setInputConnection(ic: InputConnection) {
inputConnection = ic
}
错误信息:
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:在 android.app.ActivityThread 的 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) 的 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666) 中,ic 不能为空。 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(Native Method) 在 com。android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 引起:java.lang.IllegalStateException: ic 一定不能null 在 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(Native Method) 在 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)
目前我不知道为什么会这样。WebView 对象的“onCreateInputConnection”文档显示它应该没问题。
如果我在 API 19 (Android 4.2) 或 API 25 (7.1) 下编译它没有什么不同。
有谁知道问题可能是什么?
提前致谢