Gradle DSL method not found: 'apt()'
I am trying to add the latest version of butterknife and I get this error from gradle:
Error:(31, 0) Gradle DSL method not found: 'apt()' Possible causes:
The project 'MyProject' may be using a version of Gradle that does not contain the method. Gradle settings The build file may be missing a Gradle plugin. Apply Gradle plugin
Where my gradle mobile
build.gradle
is:
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'
}
What's wrong with the gradle-apt-plugin?
Solution 1:
It's entirely possible that there's a way to get your plugins
to work. Given your error, I'd start by following what the ButterKnife project uses, get that working, then see if there is a recipe for what you're trying.
First, in your top-level build.gradle
file, include classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
in the buildscript
dependencies
, such as:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
Then, in your module's build.gradle
file, include apply plugin: 'com.neenbedankt.android-apt'
towards the top.
The links are to the relevant files from the ButterKnife GitHub repo, from the project and the dedicated sample app.
Solution 2:
apt is obsolete, Change apt to new format:
change
apt 'com.jakewharton:butterknife-compiler:8.5.1'
to
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
https://bitbucket.org/hvisser/android-apt/wiki/Migration
http://jakewharton.github.io/butterknife/
Solution 3:
Instead of:
plugins {id "net.ltgt.apt" version "0.6"}
try:
apply plugin: 'android-apt'