Метод Gradle DSL не найден: 'apt()'
Я пытаюсь добавить последнюю версию Butterknife, и я получаю эту ошибку от Gradle:
Ошибка:(31, 0) Метод Gradle DSL не найден: 'apt()' Возможные причины:
Проект "MyProject" может использовать версию Gradle, которая не содержит метод. Настройки Gradle В файле сборки может отсутствовать плагин Gradle. Применить плагин Gradle
Где мой gradle mobile
build.gradle
является:
plugins {
id "net.ltgt.apt" version "0.6"
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.mynamspace.myproject"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
wearApp project(':wear')
testCompile 'junit:junit:4.12'
compile 'com.jakewharton:butterknife:8.0.0'
apt 'com.jakewharton:butterknife-compiler:8.0.0'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
}
Что не так с плагином gradle-apt?
5 ответов
Вполне возможно, что есть способ получить ваш plugins
работать. Учитывая вашу ошибку, я начну с того, что следую тому, что использует проект ButterKnife, получу эту работу, а затем посмотрю, есть ли рецепт того, что вы пытаетесь.
Во-первых, на вашем высшем уровне build.gradle
файл, включить classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
в buildscript
dependencies
, такие как:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
Затем в вашем модуле build.gradle
файл, включить apply plugin: 'com.neenbedankt.android-apt'
к вершине.
Ссылки на соответствующие файлы из репозитория ButterKnife GitHub, из проекта и отдельного примера приложения.
apt устарел, измените apt на новый формат:
менять
apt 'com.jakewharton:butterknife-compiler:8.5.1'
в
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
Вместо:
plugins {id "net.ltgt.apt" version "0.6"}
пытаться:
apply plugin: 'android-apt'
В моем случае помогло: добавление в ваш build.gradle
(не основной, а проектный):
apply plugin: 'com.neenbedankt.android-apt'
а также
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
}
}
Добавьте свой apt-код в приложения build.gradle, а НЕ в основной build.gradle.
dependencies {
apt group: 'group name here', name: 'artifact name here', version:'version here'
}
Конечно, вам придется добавить следующий код в ваш основной build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}