Incompatible plugins for android-apt after upgrading to Android Studio 2.3

AndroidAndroid StudioGradleAndroid Apt

Android Problem Overview


After upgrading from 2.2 to 2.3 I see this warning

enter image description here

and when I try to compile the project I see this compilation error

enter image description here

How can i solve this issue without downgrading to a previous gradle version? Is there any update of android-apt that can solve this issue?

Android Solutions


Solution 1 - Android

The android-apt plugin has been deprecated.
Check here for the migration guide:

> As of the Android Gradle plugin version 2.2, all functionality that was previously provided by android-apt is now available in the Android plugin.

You can remove android-apt by following the migration guide to get the equivalent functionalities.

The important parts from the migration guide:

> - Make sure you are on the Android Gradle 2.2 plugin or newer. > - Remove the android-apt plugin from your build scripts > - Change all apt, androidTestApt and testApt dependencies to their new format:

dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Also in the Android Gradle plugin there is an explicit check for this, which is what you are seeing:

> using incompatible plugins for the annotation processing android-apt

Future Android Gradle plugin versions will not be compatible with the way android-apt works, which is the reason for that check.

Solution 2 - Android

For me, I was having this error while using Contentful's Vault library which specifies that you include:

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

and

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

What you need to do is DELETE apply plugin: 'com.neenbedankt.android-apt'

and then CHANGE:

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

to

annotationProcessor 'com.contentful.vault:compiler:2.1.0'
annotationProcessor 'com.contentful.vault:core:3.0.1'

You can always check https://github.com/contentful/vault for the latest versions

Solution 3 - Android

  1. Remove apt plugin

  2. Change:

    apt -> compile

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. In your build.gradle (app), add to defaultConfig:

vectorDrawables.useSupportLibrary = true

Solution 4 - Android

Piggybacking on @Gabriele Mariotti here since his answer is pretty spot on and implies this but doesn't state it. Gradle also does not suggest this as a valid option though it is as well. The testing equivalent for androidTestApt and testApt is androidTestAnnotationProcessor and testAnnotationProcessor.

Example:

testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

Should be changed to

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"

Solution 5 - Android

In case the annotation processor has arguments, one also might have to change this:

apt {
    arguments {
        KEY "VALUE"
    }
}

to this:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBronxView Question on Stackoverflow
Solution 1 - AndroidGabriele MariottiView Answer on Stackoverflow
Solution 2 - AndroidOjonugwa Jude OchalifuView Answer on Stackoverflow
Solution 3 - AndroidOctavian IonelView Answer on Stackoverflow
Solution 4 - AndroidsuperuserdoView Answer on Stackoverflow
Solution 5 - AndroidjoxView Answer on Stackoverflow