Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AndroidStudio 3.1.1,在调试模式下更改片段会导致输入法NPE崩溃_Android_Android Studio - Fatal编程技术网

AndroidStudio 3.1.1,在调试模式下更改片段会导致输入法NPE崩溃

AndroidStudio 3.1.1,在调试模式下更改片段会导致输入法NPE崩溃,android,android-studio,Android,Android Studio,在活动中使用EditText更改片段时,会发生“java.lang.NullPointerException”(完整堆栈跟踪如下)。这仅在调试模式下发生。我在网上搜索过,建议的解决方案没有选中高级评测(

在活动中使用EditText更改片段时,会发生“java.lang.NullPointerException”(完整堆栈跟踪如下)。这仅在调试模式下发生。我在网上搜索过,建议的解决方案没有选中高级评测( 有解决办法吗

java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.inputmethod.InputConnection.closeConnection()' on a null object reference
    at android.view.inputmethod.InputConnectionWrapper.closeConnection(InputConnectionWrapper.java:270)
    at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:541)
    at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
环境:

compileSdkVersion 27
minSdkVersion 23
targetSdkVersion 27
buildToolsVersion "27.0.3"
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Android Studio 3.1.1
Build #AI-173.4697961, built on April 4, 2018
JRE: 1.8.0_152-release-1024-b02 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Android 8.1.0

增加

我已经将过滤器设置为“Error”,所以我没有看到这些,但是当我将其更改为“Verbose”时,我可以看到这些事情发生在崩溃之前,当我尝试替换片段时

D/AutofillManager: notifyViewVisibilityChanged(): id=1073741873 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741875 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741874 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741876 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741877 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741878 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741879 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741891 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741880 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741881 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741882 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741883 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741884 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741885 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741886 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741887 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741888 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741889 isVisible=true
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741890 isVisible=true
I/Choreographer: Skipped 104 frames!  The application may be doing too much work on its main thread.
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741824 isVisible=false
D/AutofillManager: notifyViewVisibilityChanged(): id=1073741825 isVisible=false
D/AndroidRuntime: Shutting down VM
我使用这段代码将片段替换为另一个片段

    val transaction = supportFragmentManager.beginTransaction()
    transaction.replace(R.id.frame, Fragment2.newInstance());
    transaction.commit()

增加2

如果我注释掉EditText的,则不会发生此崩溃。我认为这与自动填充(Oreo)有关,所以我想通过创建一个简单的项目来隔离这个问题,该项目可以重现这个问题,但不幸的是,我无法让自动填充工作。自动填充是在我的原始项目上自动启用的,所以我不确定它是在什么条件下启用的


增加3


它也发生在Android 7.1(emulator)上。由于7.1没有自动填充,我认为它与自动填充无关。我必须进行更多的调查。

可能与这个问题有关:谁否决了这个好问题?可能是那个将其标记为“关闭”的人。该代码过去不会导致此崩溃,我直到今天才发现这一点。所以,我猜这与Android Studio或SDK的最新版本有关。我认为这与编程有关,因为其他人可能也有同样的问题。这类问题现在被允许了吗?有趣的是,我今天看到了同样的崩溃,当我处理包含EditText的片段时,我没有做任何奇怪的事情。但我也没有更新为(我在3.1-stable上):Android Studio 3.1 Build#AI-173.4670197,于2018年3月21日构建JRE:1.8.0_152-release-1024-b01 x86_64 JVM:OpenJDK 64位服务器虚拟机by JetBrains s.r.o Mac OS X 10.13.4在我仍然遇到这个问题时,您是否找到了解决方案,其余一切都与您的代码相同