Как настроить плагин 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-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'
}
ОБНОВЛЕНИЕ 3:
Если попытаться, если вы хотите установить минимальный уровень 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 вы можете сделать это:
- Щелкните правой кнопкой мыши свой модуль
- Нажмите "Открыть настройки модуля"
- Нажмите вкладку Зависимости
- Нажмите на зеленый значок плюс
- Выберите "Зависимость библиотеки" из выпадающего списка
- Введите "Butterknife" в поле поиска и нажмите кнопку поиска
После выбора библиотеки Android Studio добавляет зависимость в ваш модуль.
Поскольку Butterknife выполняет обработку аннотаций, вы должны добавить это в build.gradle вашего модуля сразу после оператора compile для butterknife:
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
где номер версии в конце должен соответствовать вашей версии ножа.