Android Studio—ButterKnife空指针异常

之前一篇写过有关 ButterKnife 插件的使用,当时只是做了插件查找、安装以及在 Activity 中如何使用。在这里先给各位道个歉,因为我也只是做了以上这些步骤,并没有在 demo 中实际使用。今天正好测试一个功能的可行性,在 demo 中实际操作了 ButterKnife ,但是我发现项目编译没有问题,但是在控件赋值时却报了空指针引用的 bug,顿时有点蒙比被欺骗的感觉,难道 ButterKnife 出问题了?可怜的我竟然还发布了它的使用方法。。。

既然出现了问题,那就只能解决它了,不能辜负了大家的厚爱(请大家原谅我的自恋 o(∩_∩)o 哈哈)。插件的使用方法应该是没有错的,要不然 Studio 编译这一关也不会通过的,看来是另有原因了。

我的 ButterKnife 版本是 8.4.0,根据版本查找的解决方法是需要在 build.gradle 中引入 android-apt 插件。

在项目的 build.gradle 中
Android Studio—ButterKnife空指针异常_第1张图片
项目 gradle 配置
在 app 的 build.gradle 中
Android Studio—ButterKnife空指针异常_第2张图片
app gradle 配置

将 android-apt 配置之后,再次运行就可以了。


下面还是要来看看出现这个问题的原因。原来是 8 之后版本与以前配置不大一样,可以看一下 github 原文:
Configure your project-level build.gradle to include the 'Android-apt' plugin:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

Then, apply the 'android-apt' plugin in your module-level build.gradle
and add the Butter Knife dependencies:

apply plugin: 'android-apt'

android {
    ...
}

dependencies {
    compile 'com.jakewharton:butterknife:8.2.1'
    apt 'com.jakewharton:butterknife-compiler:8.2.1'
}

坑已铺平,望大家注意跳过!!!

你可能感兴趣的:(Android Studio—ButterKnife空指针异常)