首页 > 解决方案 > kotlin 中的 Android 应用程序不断崩溃

问题描述

使用 Kotlin 构建的 Android 应用程序不断崩溃。我的应用程序中有一个带有菜单项(搜索图标)的搜索栏。当用户单击操作栏中的搜索图标时。一个新的活动被打开,它有一个自动获得焦点的 EditText。但是当用户在打开活动后单击操作栏中的后退按钮时。该应用程序在完成搜索活动后崩溃。这是用户单击后退按钮时执行的函数。

注意这里的后退按钮不是来自导航按钮,而是来自工具栏(操作栏)。 此外,此崩溃仅发生在 API Level 22 Lollipop、API LEVEL 23 Marshmallow 中。该应用程序在 Jellybean、KitKat、Oreo 中完美运行。

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        if (item!!.itemId == android.R.id.home) {
            finish()
        }
        return super.onOptionsItemSelected(item)
    }

这是 Android Studio 中显示的异常。

07-21 16:35:01.299 11145-11145/? E/SamsungIME: getMethod(): java.lang.NoSuchMethodException: changeFullInputMethod []
    invoke(): method is null
07-21 16:35:01.354 14763-14763/com.dealsshutter.www.dealsshutter E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.dealsshutter.www.dealsshutter, PID: 14763
    java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.finishComposingText()' on a null object reference
        at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78)
        at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:362)
        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:7402)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
07-21 16:35:01.354 14835-14913/? E/Finsky: [15052] com.google.android.finsky.an.c.a(34): Unable to build selector: /storage/emulated/0/Download/marketenvs.csv: open failed: ENOENT (No such file or directory)

标签: androidandroid-layoutkotlin

解决方案


尝试删除项目目录中的 .gradle 文件夹,然后在清除构建缓存后重建项目。


推荐阅读