Попытка вызвать метод интерфейса 'void android.view.inputmethod.InputConnection.closeConnection()' в ссылке на нулевой объект
среда: код Android Studio 3.1.1:
import com.firebase.ui.auth.AuthUI;
...
private void startSignIn()
{
// Sign in with FirebaseUI
Intent intent = AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setAvailableProviders(Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build()
))
.build();
startActivityForResult(intent, RC_SIGN_IN);
mViewModel.setIsSigningIn(true);
}
Ошибка появилась, когда я удалил свою учетную запись в firebase> Authentication> USERS и попытался снова зарегистрироваться с тем же адресом электронной почты.
Когда я выбираю вход в систему с электронной почтой и вводю электронное письмо, и нажмите "Далее", приложение остановилось...
он должен создать новую учетную запись
код ошибки:
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:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
любая идея, что пошло не так?
Ответы
Ответ 1
Это происходило со мной на реальном устройстве.
У меня был EditText, который я программно очищал и скрывал мягкую клавиатуру после того, как пользователь отправил текст. И когда пользователь переключился на другой фрагмент, функция InputConnection была закрыта, но редко она была нулевой.
Вызов EditText.clearFocus() после отправки текста исправил проблему для меня, как сразу вызвал InputConnection.closeConnection, а не onCreateView другого фрагмента.
Также следует работать с вызовом clearFocus в onPause фрагмента/действия с помощью EditText.
Ответ 2
Похоже, что проблема с Android Profiler.
Поскольку нам не нужно включать расширенный профилирование явно для API> = 26, после открытия вкладки "Android Profiler" в Android Studio, она ловит ваше приложение и связывается с ним.
Что мне помогло, я перейду на вкладку Android Profiler и нажав "Завершить сеанс" в правом верхнем углу.
![See the screenshot]()
Ответ 3
Наконец, я решаю проблему, удалив приложение на симуляторе,
и запустите и установите приложение еще раз.
это похоже на эту проблему, вызванную кешем, я не уверен
Ответ 4
Я думаю, что эта проблема связана с имитационной средой. У меня была аналогичная проблема в эмуляторе, но не на моем телефоне.
Если я использовал мышь в симуляторе, он разбился, когда я меняю фрагменты, но если я использую только клавиатуру, авария не возникает.
Решение: я обновил эмулятор, и проблема исчезла.
Ответ 5
У меня была очень похожая проблема, и предложение @Sfseyhan называть clearFocus()
в onPause()
не onPause()
и не View.OnFocusChangeListener
мой View.OnFocusChangeListener
s). Я получал два исключения довольно последовательно, всякий раз, когда мягкая клавиатура показывала сфокусированный на EditText:
- Если редактирование, но затем запуск нового действия:
java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.finishComposingText()' on a null object reference
а также
- Если редактирование, но затем нажмите кнопку "Домой", чтобы вернуться в
java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.reportFullscreenMode(boolean)' on a null object reference
запуска: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.reportFullscreenMode(boolean)' on a null object reference
Похоже, что проблема связана с Android Studio (https://issuetracker.google.com/issues/77764953). Я использовал v3.1.3
, но, как говорится в выпуске, они v3.1.3
проблему с Android Studio 3.2 Canary 18
. Я подтвердил с моей стороны Android Studio 3.2 Beta 2
что у меня больше нет сбоев.
Ответ 6
Соблюдайте эту проблему при удалении текущего фрагмента и о том, как использовать другой фрагмент.
После использования разных методов: проблема была обнаружена только тогда, когда устройство подключено в режиме отладки.
NPE: попытка вызвать метод интерфейса "void android.view.inputmethod.InputConnection.closeConnection()" по ссылке нулевого объекта → Сбой при закрытии соединения с EditText (после разного наблюдения я получил этот вывод)
Разрешение: None - Works fine in normal condition on device (Without debug mode)
Другое Решение: Update Android Studio to latest
или же
Перейдите в Edit configuration settings → Profiling → Enable advanced profiling
Ответ 7
Я пробовал все решения из этого потока, однако проблема не была решена.
После того, как я столкнулся с этим сообщением в блоге. Как это предлагается в сообщении в блоге, я изменил варианты сборки от отладки до выпуска, и проблема решена.
Перед установкой версии выпуска необходимо полностью удалить приложение отладки с устройства.