web-dev-qa-db-ja.com

Android St​​udio警告:注釈処理に互換性のないプラグインを使用しています

Android St​​udioを2.3バージョンに更新すると、警告が表示されます。

警告:注釈処理に互換性のないプラグインを使用しています:Android-apt。これにより、予期しない動作が発生する場合があります。

解決策はありますか?アプリが機能しなくなった...

51
K. Kempski

アプリレベルのgradle依存関係には(butterknife Webサイトの指示に従って)を含める必要があります。

compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

次の行を削除できます。

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

注釈処理はAndroid Gradleプラグイン(2.2以降)で使用可能になったため、このバージョンのgradle以上を使用する場合、上記のプラグインを使用する必要はなくなりました。

注釈処理をオフおよびオンにしてASが設定されている方法を知りたい場合:

[設定]> [ビルド、実行、展開]> [コンパイラ]> [注釈プロセッサ]

125
Mark Keen

私のプロジェクトでは、特にバターナイフとイミュータブルを使用しています。 Immutablesを追加した後、次の警告が表示されました

警告:注釈処理に互換性のないプラグインを使用しています:Android-apt。これにより、予期しない動作が発生する場合があります。

butterKnifeは動作を停止しました。

私の構成は次のとおりです。

build.gradle(プロジェクト:MyApplication)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.3.1'
        classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
    }
}

build.gradle(モジュール:アプリ)

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

...

dependencies {

    ...

    // Butter Knife
    compile 'com.jakewharton:butterknife:8.5.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

    // Immutables
    apt 'org.immutables:value:2.4.4'
    provided 'org.immutables:value:2.4.4'
    provided 'org.immutables:builder:2.4.4'
    provided 'org.immutables:gson:2.4.4'

}

変更後

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

apt 'com.jakewharton:butterknife-compiler:8.5.1'

警告が消え、すべてが正常に機能します。

UPDATE

Markが言ったように、Gradleバージョン2.2には注釈プロセッサが含まれていたので、追加のプロセッサを提供する理由はありません。

そう:

1)build.gradle(プロジェクト:MyApplication)からaptのクラスパスを削除します

classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'

2)プラグインをbuild.gradle(Module:app)から削除します

apply plugin: 'Android-apt'

3)依存関係をaptから新しいannotationProcessorに変更します

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
annotationProcessor 'org.immutables:value:2.4.4'
39
Milan Hlinák

@Milanの答えに追加するには、アプリレベルのgradleファイルでhotchemi permissiondispatcherライブラリを使用した場合、次のように置き換える必要があります。

交換

apt 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'

annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'
2

Project Gradle buildscript --> dependenciesブロックで、2番目のclasspath行を削除します。

dependencies {
    classpath 'com.Android.tools.build:gradle:3.2.1'
    // classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

そしてアプリのGradle dependenciesブロックで、これらの行を変更し、apiannotationProcessorを使用します:

api 'com.google.dagger:dagger:2.19'
annotationProcessor 'com.google.dagger:dagger-compiler:2.19'

また、これを削除します:

//apply plugin: 'com.neenbedankt.Android-apt'
0
AndroSco