在每个片段中都找不到带有字段 ID 的 Butterknife 必需视图
Butterknife Required view with ID for field was not found in every fragment
当我尝试使用 Butterknife 绑定我的视图时,每次调用 ButterKnife.bind(this, fragmentView!!)
方法后我都会得到这个 IllegalStateException
。
例如:
//...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:
Required view login with ID 2131362018 for field logoutButton was not found.
If this view is optional add @Nullable (fields) or @Optional (methods) annotation.
关键是我没有像异常所说的那样绑定 'login' 视图。
我有界'logutButton'。
我确实有 'login' 视图,但在另一个与出现异常的片段无关的片段中。
这发生在每个片段中,activity,或适配器或其他需要用 butterknife 绑定视图的东西。
每次 Butterknife 尝试绑定时,声明顺序中首先出现的字段的绝对随机视图(只有第一个 @BindView
注释受影响,下一个注释没问题)
我正在使用 @Nullable
注释,它非常有用(即使在我删除 @Nullable
注释后 - 片段工作正常)。但是我有很多碎片和活动,所以我无法检查所有这些并添加 @Nullable
注释。
如何找到此问题的根源以使其不再发生?
我就是这样解决的:
Build -> Clean Project
一切都很好!
在kotlin项目中使用Butterknife毫无意义。 Kotlin 已经提供了对布局及其视图的直接且轻松的访问。 https://kotlinlang.org/docs/tutorials/android-plugin.html
你应该停止使用 butterknife 并从 gradle 中删除这个库。
尝试添加此注释 @Nullable
或 @Optional
。我参考了 https://github.com/JakeWharton/butterknife/issues/343
@Nullable
@BindView(R.id.tvTitle)
当我尝试使用 Butterknife 绑定我的视图时,每次调用 ButterKnife.bind(this, fragmentView!!)
方法后我都会得到这个 IllegalStateException
。
例如:
//...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: Required view login with ID 2131362018 for field logoutButton was not found. If this view is optional add @Nullable (fields) or @Optional (methods) annotation.
关键是我没有像异常所说的那样绑定 'login' 视图。 我有界'logutButton'。 我确实有 'login' 视图,但在另一个与出现异常的片段无关的片段中。
这发生在每个片段中,activity,或适配器或其他需要用 butterknife 绑定视图的东西。
每次 Butterknife 尝试绑定时,声明顺序中首先出现的字段的绝对随机视图(只有第一个 @BindView
注释受影响,下一个注释没问题)
我正在使用 @Nullable
注释,它非常有用(即使在我删除 @Nullable
注释后 - 片段工作正常)。但是我有很多碎片和活动,所以我无法检查所有这些并添加 @Nullable
注释。
如何找到此问题的根源以使其不再发生?
我就是这样解决的:
Build -> Clean Project
一切都很好!
在kotlin项目中使用Butterknife毫无意义。 Kotlin 已经提供了对布局及其视图的直接且轻松的访问。 https://kotlinlang.org/docs/tutorials/android-plugin.html
你应该停止使用 butterknife 并从 gradle 中删除这个库。
尝试添加此注释 @Nullable
或 @Optional
。我参考了 https://github.com/JakeWharton/butterknife/issues/343
@Nullable
@BindView(R.id.tvTitle)