Как настроить плагин ButterKnife в Android Studio?

Мне нужно установить плагин Butter Knife. Где я могу скачать его? Я загрузил плагин .jar(но не тот файл, который мне нужен), я установил, но когда я нажимаю на опцию "generate", не появляется возможность использовать butterknife. после видео-урока я изменил файлы Gradle build: у меня есть они теперь следующим образом:

apply plugin: 'android-apt'
apply plugin: 'com.android.application'


android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "calcursoedxleccion0.cal"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion"
    compile "com.android.support:recyclerview-v7:$rootProject.ext.supportLibraryVersion"
    compile "com.android.support:support-v4:$rootProject.ext.supportLibraryVersion"
    compile "com.android.support:design:$rootProject.ext.supportLibraryVersion"

   // compile "com.jakewharton:butterknife:$rootProject.ext.butterKnifeVersion"
    compile "com.jakewharton:butterknife:$rootProject.ext.butterKnifeVersion"


   apt "com.jakewharton:butterknife-compiler:8.0.1"
}

и

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext{

    minSdkVersion = 16
    targetSdkVersion = 23
    compileSdkVersion = 23
    buildToolsVersion = '23.0.3'

    supportLibraryVersion = '23.3.0'
    butterKnifeVersion = '8.0.1'
}

Gradle для синхронизации я получаю эту ошибку:

"Андроид-библиотека или плагин должны быть применены к проекту" error (1.0)

Что я делаю неправильно?

Ответ 1

Самый простой способ использовать библиотеку ButterKnife - добавить эту единственную строку в список зависимостей build.gradle уровня build.gradle:

dependencies {
  implementation 'com.jakewharton:butterknife:7.0.1'
}

Затем вы можете синхронизировать свой проект!

ОБНОВЛЕНИЕ 1

Я только что заметил, что Джейк Уортон обновил библиотеку с тех пор, как я в последний раз использовал ее! Теперь, похоже, вам нужно добавить в два отдельных места:

В вашем файле build.gradle уровня build.gradle:

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

И, наконец, в вашем файле build.gradle уровня build.gradle:

apply plugin: 'android-apt'

android {
  ...
}

dependencies {
   implementation 'com.jakewharton:butterknife:8.0.1'
   apt 'com.jakewharton:butterknife-compiler:8.0.1'
}

Важно, чтобы вы добавили apply plugin: 'android-apt' в build.gradle файла build.gradle module-level build.gradle; Скорее всего, ниже первой строки, как это:

apply plugin: 'com.android.application'
apply plugin: 'android-apt'

Я только что проверил это и работает для меня. Удачи!

ОБНОВЛЕНИЕ 2

Джейк Уортон только что выпустил обновление для библиотеки, и вот что вам нужно сделать, чтобы использовать его:

Итак, внутри вашего build.gradle(app-level) добавьте следующее в ваши зависимости!

dependencies {
   compile 'com.jakewharton:butterknife:8.8.1'
   annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}

where to add Надеюсь, это поможет вам!

ОБНОВЛЕНИЕ 3:

Вот версии, выпущенные до сих пор, если у вас есть конфликт с другими библиотеками и вы хотите, чтобы он работал на более старых уровнях API

Если попытаться, если вы хотите установить минимальный уровень SDK 15 до сих пор, вам нужно будет поиграть с версиями, чтобы заставить его работать, в моем случае эти наборы совместимы до сих пор с SDK 15 как минимум.

В этом случае я помещаю их только на уровне приложения модуля build.gradle.

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

    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
    implementation group: 'com.squareup.retrofit2', name: 'converter-gson', version: '2.3.0'

    implementation 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

    implementation 'io.reactivex:rxjava:1.1.6'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

    implementation 'com.android.support:recyclerview-v7:24.2.1'
}

Ответ 2

В Android Studio вы можете сделать это:

  • Щелкните правой кнопкой мыши свой модуль
  • Нажмите "Открыть настройки модуля"
  • Вкладка "Зависимости"
  • Нажмите значок "зеленый плюс"
  • Выберите "Зависимость библиотеки" от раскрывающегося списка
  • Введите "butterknife" в поле поиска и нажмите кнопку поиска

После выбора библиотеки Android Studio добавляет зависимость к вашему модулю.

Так как butterknife выполняет обработку аннотации, вы должны добавить это в build.gradle своего модуля сразу после инструкции compile для butterknife:

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

где номер версии в конце должен соответствовать вашей версии butterknife.