gpt4 book ai didi

android - EditText : NPE in InputConnection. reportFullscreenMode

转载 作者:搜寻专家 更新时间:2023-11-01 08:22:12 27 4
gpt4 key购买 nike

注意:我尝试解决的问题仅限于运行 SDK 23 (Marshmallow) 的基于 Rockchip RK312X 的无名中国平板电脑。似乎没有其他设备受到影响,但不幸的是,我不得不使用那些糟糕的设备(顺便说一句,它们上面也有串行端口)用于开发和演示目的。

问题:当包含 EditText 的任何子类的 any 布局从窗口中移除时(在 Activity 中调用 finish(),包含 EditText 的自定义 DialogFragment 被关闭等)应用程序崩溃并提供以下堆栈跟踪(完整输出):

java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.reportFullscreenMode(boolean)' on a null object reference
at android.view.inputmethod.InputConnectionWrapper.reportFullscreenMode(InputConnectionWrapper.java:122)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:416)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)

这是一个非常简单的布局示例:

 <android.support.design.widget.TextInputLayout
android:id="@+id/tilConnectionToken"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvSetupInfo"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:ems="10"
app:errorEnabled="true"
android:hint="@string/conn_token">

<android.support.design.widget.TextInputEditText
android:id="@+id/etConnectionToken"
android:maxLines="1"
android:inputType="text"
android:imeOptions="actionDone"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>

Activity 并没有真正做任何事情:

class ConnectWizardActivity : AppCompatActivity(), View.OnClickListener {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setup_wiz)
btnCancel.setOnClickListener(this)
}


override fun onClick(v: View) {
when (v.id) {
R.id.btnCancel -> finish()
}
}
}

调用 finish() 已经导致上面提供的堆栈跟踪崩溃。在完成 Activity 之前我尝试了什么:

  • EditText 中清除焦点
  • 隐藏软键盘
  • 从其容器中完全删除 EditText(和其他 Views)

相同的 NPE 不断发生。正如我之前所说,这个问题并不局限于特定的 Activity 或 EditText 的特定子类——它在这些设备上无处不在。

我认为通常应该发生的事情:例如这个日志来自华为 MediaPad T3,没有崩溃

W/IInputConnectionWrapper: finishComposingText on inactive InputConnection

关于如何在无名 Marshmallow 设备上解决 NPE 的任何想法?

最佳答案

我遇到了同样的问题,最终发现 Android Studio 的“高级分析”功能是罪魁祸首。

This answer说明如何禁用该选项。希望这对您有所帮助!

关于android - EditText : NPE in InputConnection. reportFullscreenMode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49894408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com