【问题标题】:Butterknife Suddenly Stopped WorkingButterknife 突然停止工作
【发布时间】:2018-05-09 15:55:39
【问题描述】:

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

以下是我已经做过但不起作用的几点

  1. 使用最新版本,目前我使用的是 8.8.1
  2. 使用旧版本,我尝试使用 8.0.1 和 8.6.0
  3. 清理并重建
  4. 使缓存失效
  5. 删除 Gradle 和 Build 文件

以下是我使用的版本

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 小时中一直在敲我的脑袋。如果有人可以提供帮助,将被占用

【问题讨论】:

  • 你更新到Android3.0了吗?有一个迁移到新 gradle 版本的指南
  • 是的,我做到了...目前我正在开发 3.0.1...但是在 3.0.1 中它昨天工作正常
  • 另外,检查github.com/JakeWharton/butterknife/issues/1127 看看 9.0.0-SNAPSHOT 是否适合您
  • 用buildToolsVersion '27.0.0'怎么样?
  • 升级buildToolsVersion 无效@ישואוהבאותך

标签: android android-studio android-activity butterknife


【解决方案1】:

最后我找到了解决方案。我是因为 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'

解决问题

【讨论】:

    【解决方案2】:

    可能有两种可能性:

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

    【讨论】:

    • 我已经检查了外部库只有 8.8.1
    猜你喜欢
    • 2017-08-22
    • 2021-02-01
    • 2016-12-29
    • 2015-12-07
    • 2015-08-23
    • 2014-02-05
    • 2013-09-06
    • 1970-01-01
    相关资源
    最近更新 更多