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


100

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

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

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

回答:


179

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動作方法と互換性がなくなるため、このチェックが行われます。


ありがとう!aptが廃止されたことを知りませんでした。
ブロンクス

1
そして、Android Gradleプラグインでは、Googleが明示的にチェックしています。これが表示されています。Android Gradleの将来のバージョンは、android-apt動作方法と互換性がなくなるため、このチェックが行われます。
botteaap 2017年

小切手はどこですか
ericn 2017

aptはありませんが、まだこの警告が表示されます。編集:それはレルムだったことが
判明

コードにNDROID-ptが表示されていませんが、エラーが発生しています。問題は何でしょうか?
ムバシャー

47

私にとって、Vaultあなたが含めることを指定するContentfulのライブラリを使用しているときにこのエラーが発生しました:

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

そして

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

あなたがする必要があるのはDELETEです apply 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で最新バージョンをいつでも確認できます


15
  1. aptプラグインを削除する

  2. 変化する:

    apt->コンパイル

    testApt-> testAnnotationProcessor

    androidTestApt-> androidTestAnnotationProcessor

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

vectorDrawables.useSupportLibrary = true


6

@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"

1

注釈プロセッサに引数がある場合、これを変更する必要があるかもしれません:

apt {
    arguments {
        KEY "VALUE"
    }
}

これに:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.