【发布时间】:2019-06-27 13:33:34
【问题描述】:
当我尝试用 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: 未找到字段 logoutButton 所需的 ID 为 2131362018 的视图登录。 如果此视图是可选的,请添加@Nullable(字段)或@Optional(方法)注释。
关键是我没有像异常所说的那样绑定“登录”视图。 我限制了'logutButton'。 我确实有“登录”视图,但在另一个与出现异常的片段没有连接的片段中。
这发生在每个片段、活动或适配器或其他需要用黄油刀绑定视图的东西中。
并且每次 Butterknife 尝试绑定时,声明顺序中首先出现的字段的绝对随机视图(仅影响第一个 @BindView 注释,下一个注释很好)
我正在使用 @Nullable 注释,它的帮助非常好(即使在我删除了 @Nullable 注释之后 - 片段工作正常)。但是我有很多片段和活动,所以我不能全部检查并添加@Nullable注解。
我怎样才能找到这个问题的根源,以免它再次发生?
【问题讨论】:
-
在使用 kotlin 时不需要黄油刀。kotlin android 扩展提供对布局视图对象的直接访问!
-
清理并构建后尝试
标签: android kotlin butterknife