导入butterknife.InjectView无法解析

时间:2015-07-21 06:04:55

标签: android eclipse butterknife

我正在尝试使用this library project,所以我尝试运行示例应用程序(在Github链接中的/app/source/main/中),在MainActivity.java中,我收到了错误导入

import butterknife.InjectView;

以及MainActivity.javaVerticalLinearRecyclerViewSample.java,每次出现@InjectView(...)注释时,都会出现以下错误:

InjectView cannot be resolved to a type

那我该怎么办呢?

我做了什么:

我见过this question。没有为我工作,在那里留下了评论。

我有followed these steps to include the Butter Knife library直到第3步。关于步骤#4,"确保.apt_generated /文件夹位于项目根目录中..." - 此项目没有任何名为.apt-generated的文件夹或项目根文件夹中的某些内容。

注意:我实际上使用的是Eclipse,而Github上的项目是针对Android Studio的,因此我在eclipse中创建了一个新项目,并从下载的Android Studio项目中复制了单个文件。我希望这没有什么不同。

5 个答案:

答案 0 :(得分:31)

感谢@Sharj首先回答。

Butterknife 7.0.0版本包括重命名注释动词的重大变化。这在更改日志中突出显示并反映在网站中。

Version 7.0.0 *(2015-06-27)*
----------------------------

 * `@Bind` replaces `@InjectView` and `@InjectViews`.
 * `ButterKnife.bind` and `ButterKnife.unbind` replaces `ButterKnife.inject` 
    and `ButterKnife.reset`, respectively.
...

https://github.com/JakeWharton/butterknife/blob/f65dc849d80f6761d1b4a475626c568b2de883d9/CHANGELOG.md

答案 1 :(得分:8)

最新版本有bind而不是InjectView。之前的版本,使用ButterKnife.inject(this)来注入视图。此外,Eclipse不再受支持,开始使用Android Studio。

答案 2 :(得分:6)

@InjectView已不再可用,已被@BindView取代。我们必须导入Butterknife个依赖项才能使用annotations

答案 3 :(得分:3)

改变ButterKnife.inject(this);到ButterKnife.bind(this);

答案 4 :(得分:0)

implementation 'com.jakewharton:butterknife:6.1.0'

中尝试添加:build.gradle