Butterknife突然停止工作

昨天我正在使用ButterKnife.bind(this)正在进行的项目中,但突然停止工作ButterKnife.bind(this)无法绑定视图,以至于所有视图都抛出NullPointerException 。我不明白发生了什么事突然停止工作,这是一个奇怪的情况

这里有几点,我已经做了,但没有工作

  1. 使用目前我使用的最新版本8.8.1
  2. 使用旧版本,我尝试了8.0.1和8.6.0
  3. 清洁和重建
  4. 使缓存无效
  5. 删除Gradle和生成文件

以下是我正在使用的版本

 ext { // sdk and tools minSdkVersion = 21 targetSdkVersion = 27 compileSdkVersion = 27 buildToolsVersion = '26.0.2' // dependencies versions supportLibraryVersion = '27.0.0' playServicesVersion = '10.2.4' butterKnifeVersion = '8.8.1' retrofitVersion = '2.3.0' } 

在这个愚蠢的问题上,我从8个小时的头脑中敲起了头来。如果任何人都可以帮忙的话就会被占用

可能有两种可能性:

  1. 你的外部依赖不升级,检查项目的“外部库”部分,并比较它是否升级到最新版本,也就是8.8.1(也试图让gradle离线工作)
  2. 如果您升级到Android插件的Gradle 3.0或更高版本,则会自动使用默认版本的buildTools https://developer.android.com/studio/releases/build-tools.html#notes

最后,我find了解决方案。我是由于Kotlin插件。 这是因为我更新Android Studio 3.0中的Kotlin插件

如果您使用的是Kotlin,那么annotationProcessor无法正常工作,您需要使用kapt

所以替换这个

 compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 

有了这个

 compile 'com.jakewharton:butterknife:8.8.1' kapt'com.jakewharton:butterknife-compiler:8.8.1' 

这将解决这个问题