web-dev-qa-db-ja.com

Android Studio 2.3にアップグレードした後のAndroid-apt用の互換性のないプラグイン

2.2から2.3にアップグレードした後、この警告が表示されます

enter image description here

プロジェクトをコンパイルしようとすると、このコンパイルエラーが表示されます。

enter image description here

どのようにして以前のGradleバージョンにダウングレードせずにこの問題を解決することができますか?この問題を解決できるAndroid-aptのアップデートはありますか?

92
Bronx

Android-aptプラグインは推奨されなくなりました
移行ガイド については、こちらをご覧ください。

Android Gradleプラグインバージョン2.2以降、以前にAndroid-aptによって提供されていたすべての機能がAndroidプラグインで使用可能になりました。

同等の機能を得るために移行ガイドに従うことによってAndroid-aptを削除することができます。

移行ガイドの重要な部分:

  • Android Gradle 2.2プラグイン以降を使用していることを確認してください。
  • ビルドスクリプトからAndroid-aptプラグインを削除します。
  • すべてのaptandroidTestApt、およびtestAptの依存関係を新しい形式に変更します。
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

また、Android Gradleプラグインには、これに対する明示的なチェックがあります。

注釈処理に互換性のないプラグインを使用するAndroid-apt

将来のAndroid GradleプラグインのバージョンはAndroid-aptの動作方法と互換性がなくなり、これがそのチェックの理由です。

166

私にとっては、ContentfulのVaultライブラリを使用しているときにこのエラーが発生していました。

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

そして

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

あなたがする必要があるのはDELETEapply plugin: 'com.neenbedankt.Android-apt'です

そしてCHANGE

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

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

最新バージョンについては、常に https://github.com/contentful/vault を確認してください。

39
  1. Aptプラグインを削除

  2. 変化する:

    apt - > compile

    testApt - > testAnnotationProcessor

    androidTestApt - > androidTestAnnotationProcessor

  3. Build.gradle(アプリ)で、defaultConfigに追加します。

vectorDrawables.useSupportLibrary = true

15
Octavian Ionel

彼の答えはかなり注目されているのでここで@Gabriele Mariottiに便乗してこれを暗示するがそれを述べていない。 Gradleは、これも有効なオプションとして推奨していません。 androidTestApttestAptと同等のテストはandroidTestAnnotationProcessortestAnnotationProcessorです。

例:

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

に変更する必要があります

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

注釈プロセッサに引数がある場合は、これを変更する必要があります。

apt {
    arguments {
        KEY "VALUE"
    }
}

これに:

Android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
0
jox