Butterknife @BindView 中的 AnnotationTypeMismatchException,布局在另一个文件夹结构中定义
Posted
技术标签:
【中文标题】Butterknife @BindView 中的 AnnotationTypeMismatchException,布局在另一个文件夹结构中定义【英文标题】:AnnotationTypeMismatchException in Butterknife @BindView with layouts defined in another folder structure 【发布时间】:2021-12-14 08:16:14 【问题描述】:最近在做一个项目时,由于布局添加了这么多 xml,我在布局资源中添加了子文件夹以使项目结构化,但之后 ButterKnife Injections 不起作用。我收到以下错误。
@BindView(R.id.tb_tvcoinsMainCommon) TextView tvCoins;
^
java.lang.annotation.AnnotationTypeMismatchException: Incorrectly typed data found for annotation element public abstract int butterknife.BindView.value() (Found data of type <any>)
findViewById() 没有给出任何问题,只有 ButterKnife Bindings 给出了问题。如果有人有有用的解决方案
【问题讨论】:
你用的是哪个版本的butterknife..? 我使用的是 10.2.3 【参考方案1】:在可能为空的视图的@Bind
之前添加注释@Nullable
。
示例:ButterKnife Website:
@Nullable @BindView(R.id.tb_tvcoinsMainCommon) TextView tvCoins;
【讨论】:
这不起作用,可能是编译器找不到文件夹中定义的xml文件【参考方案2】:感谢您对此进行调查,问题是代码无法从新布局目录中找到 xml 文件。 build.gradle 文件缺少正确的资源文件夹配置。解决后的gradle文件和项目结构是这样的
【讨论】:
以上是关于Butterknife @BindView 中的 AnnotationTypeMismatchException,布局在另一个文件夹结构中定义的主要内容,如果未能解决你的问题,请参考以下文章