ButterKnife:未找到。尝试超类 android.support.v7.app.AppCompatActivity

ButterKnife: Not found. Trying superclass android.support.v7.app.AppCompatActivity

我正在尝试使用 Butterknife 绑定 TextView 我有主要 activity 和布局由 TextView 和 id tv_app_name 组成。我遵循 documentation

public class MainActivity extends AppCompatActivity {

@BindView(R.id.tv_app_name)
TextView tvAppName;

@BindString(R.string.app_name)
String appName;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);

    ButterKnife.setDebug(true);

    tvAppName.setText(appName);


 }
}

我遇到了 tvAppName 未初始化并显示 nullPointerException 的问题。我添加了 ButterKnife.setDebug(true); 正如 Whosebug 中的一些答案所建议的 我在日志中发现显示 ButterKnife: Not found. Trying superclass android.support.v7.app.AppCompatActivity.

当我在寻找这个问题的解决方案时。有人说添加依赖项 butterknife-compiler,但我已经添加了:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'

    //butterknife
    compile 'com.jakewharton:butterknife:8.4.0'
    apk 'com.jakewharton:butterknife-compiler:8.4.0'
}

bihinde 有什么问题:

ButterKnife:未找到。尝试超类 android.support.v7.app.AppCompatActivity 我该如何解决这个问题?

您的依赖项中有错字。您的 build.gradle 文件中的行

apk 'com.jakewharton:butterknife-compiler:8.4.0'

应该是

apt 'com.jakewharton:butterknife-compiler:8.4.0'

您还需要添加

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

到您的项目级别 build.gradle 文件 -- 有关详细信息,请参阅 https://github.com/JakeWharton/butterknife#download