Kotlin中的Android App持续崩溃

时间:2018-07-21 11:15:51

标签: android android-layout kotlin

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

注意此处的后退按钮不是来自导航按钮,而是来自工具栏(操作栏)。 该崩溃仅在API级别22棒棒糖,API级别23棉花糖中发生。 该应用程序可以在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)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:-1)

您有一个NullPointerException。您正在使用Kotlin,所以不应该这样做。除非您没有正确使用Kotlin null安全,否则请注意。阅读Kotlin Null Safety