You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将ButterKnife替换为ViewBinding时出现NoSuchFieldError错误求助

解决SearchActivity的NoSuchFieldError问题

问题根源很明确:你已经改用ViewBinding,但仍保留了ButterKnife.bind(this)语句,ButterKnife会在运行时尝试绑定之前用@BindView注解标记的View字段——哪怕你已经删除了这些字段,旧的编译缓存或生成的绑定类还会试图查找已移除的mUserLoggedView。

解决步骤:

  • 立即删除ButterKnife.bind(this)语句:既然已经切换到ViewBinding,完全不需要再调用ButterKnife的绑定方法,这是导致错误的直接原因。
  • 彻底清理ButterKnife相关注解:检查SearchActivity中所有@BindView、@OnClick等ButterKnife注解,确保全部删除,没有遗漏。
  • 清理编译缓存并重建项目:
    1. 在Android Studio中点击Build -> Clean Project
    2. 再点击Build -> Rebuild Project
      这一步会清除旧的编译产物(包括ButterKnife自动生成的绑定类),避免缓存中的旧代码干扰。
  • 额外检查:确认布局文件中是否还有mUserLoggedView对应的id,以及项目中其他类是否存在反射引用该字段的代码(不过这种情况概率极低)。

按照以上步骤操作后,错误应该就能解决。

内容的提问来源于stack exchange,提问作者Lubron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:40:28