Когда я пытаюсь связать свои представления с помощью Butterknife, я получаю это IllegalStateException
после каждого вызова метода ButterKnife.bind(this, fragmentView!!)
.
Например:
//...BindView section
@BindView(R.id.logoutButton)
lateinit var logoutButton: View
@BindView(R.id.closeSession)
lateinit var closeSessionButton: View
@BindView(R.id.settings)
lateinit var settingsButton: View
И я получаю это:
java.lang.IllegalStateException: Требуемый вход в систему с идентификатором 2131362018 для поля logoutButton не найден. Если это представление является необязательным, добавьте аннотацию @Nullable (поля) или @Optional (методы).
Дело в том, что я НЕ ПРИВЯЗАЛ вид «логин», как сказано в исключении. Я ограничил 'logutButton'. У меня было представление «логин», но в другом фрагменте, который не имеет связи с фрагментом, где появляется исключение.
И это происходит в каждом фрагменте, активности, адаптере или чем-то еще, что требует привязки представлений с помощью Butterknife. И каждый раз, когда Butterknife пытается связать, абсолютно случайное представление для поля, которое стоит первым в порядке объявления (затрагивается только первая аннотация @BindView
, следующая аннотация в порядке)
Я использую аннотацию @Nullable
, и она отлично помогает (даже после того, как я удалил аннотацию @Nullable
- фрагмент работает нормально). Но у меня много фрагментов и активностей, поэтому я не могу проверить их все и добавить аннотацию @Nullable
.
Как мне найти источник этой проблемы, чтобы она никогда больше не повторилась?