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

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

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 для синхронизации я получаю эту ошибку:

Ошибка "Android android-библиотека или плагин должны быть применены к проекту" (1.0)

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

2 ответа

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

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

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

ОБНОВЛЕНИЕ 1

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

На вашем уровне проекта build.gradle файл:

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

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

apply plugin: 'android-apt'

android {
  ...
}

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

Важно, чтобы вы добавили apply plugin: 'android-apt' к вершине module-levelbuild.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'
}

куда добавить Я надеюсь, это поможет вам!

ОБНОВЛЕНИЕ 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'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'

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

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

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

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

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

  1. Щелкните правой кнопкой мыши свой модуль
  2. Нажмите "Открыть настройки модуля"
  3. Нажмите вкладку Зависимости
  4. Нажмите на зеленый значок плюс
  5. Выберите "Зависимость библиотеки" из выпадающего списка
  6. Введите "Butterknife" в поле поиска и нажмите кнопку поиска

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

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

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

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

Другие вопросы по тегам