web-dev-qa-db-ja.com

Lombokには注釈処理が必要

私はAndroid Studio 2.2 Preview 7を使用しています。Lombokプラグインは突然Annotation processing seems to be disabled for the project X、および設定へのリンクを提供します。

enter image description here

通知をクリックしても、適切な場所に移動できません。

これに対する修正は何ですか?

36

通知をクリックして開いた設定はPer Project設定。これらはこの場合に必要なものではありません。

これを修正するには、

  • File->Other Settings->Default Settings
  • Build, Execution, Deployment
  • Compilerを展開します
  • Annotation Processors 小切手 Enable annotation processing
  • 設定を有効にするには、プロジェクトを再度開く必要があります。
  • 楽しい

完全なリファレンス-適切な設定画面のスクリーンショット: enter image description here

75

新しいgradleバージョンでは、これらの行をアプリのbuild.gradleの依存関係ブロックに入力するだけで十分です。

compile "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"  

プロジェクトをグラドルと同期すると、動作します。

16
Andras Kloczl

まず、ようこそ画面からプロジェクトを削除しても効果がないと思います。考えてみてください。その画面の「最近のプロジェクト」からプロジェクトを削除しても再作成されません。デフォルト設定を変更すると、既存のプロジェクト?

既存のプロジェクトで注釈処理を有効にするために、何も削除する必要はありません。 YourAwesomeProject/.idea/compiler.xmlに移動し、次の属性に値 "true"があることを確認してください:/project/annotationProcessing/profile@enabled

このような:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    ...
    <annotationProcessing>
      <profile default="true" name="Default" enabled="true"><!-- here -->
        <processorPath useClasspath="true" />
      </profile>
    </annotationProcessing>
  </component>
</project>

ファイル->キャッシュの無効化/再起動が必要になる場合があります

14

Android Studio 2.4+を使用して同じ問題を抱えている人は、Janis Peisenieksの回答を除いて上記のヒントを実行しても解決されません。

Intellijを開きますIDEA 2017/Android Studio 2.4+に移動して(Windows)

  1. ファイル->その他の設定->デフォルト設定
  2. 展開ビルド、実行、展開
  3. Compilerを展開し、Annotation Processorsを選択します
  4. アノテーション処理を有効にするおよび "プロジェクトクラスパスからプロセッサを取得するが有効になっていることを確認してください
  5. 最後に、プロジェクトのbuild.gradleファイルを以下のスニペットで更新します。 (今まで。 issue を参照してください)を使用していないため、廃止されたというヒントは無視してください。

    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
    

上記のすべての変更をせずにこれを行う非常に簡単な方法があることがわかりました!

プロセッサをロンボクのようなgradleに設定する場合、providedまたはtestCompileのみを使用することはありません。依存関係にもannotationProcessorを使用してこれを追加する必要があります。例:

dependencies {
    provided "org.projectlombok:lombok:1.16.16"
    annotationProcessor "org.projectlombok:lombok:1.16.16"
}

バターナイフのジャックウォートンに感謝します。

ヒント:ロンボクなどの一部の注釈プロセッサでキャッシュを機能させるには、キャッシュを無効にして再起動する必要がある場合があります。

8
Emanuel S

おそらくマークされた答えで十分でしたが、私はAndroid studio 3とlombok 1.16.18で少し苦労しました。

app> build.gradleに以下を追加

compileOnly 'org.projectlombok:lombok:1.16.18'
annotationProcessor 'org.projectlombok:lombok:1.16.18'

MyApplication> lombok.configに次の行を追加すると、他のエラーが発生する可能性があります

lombok.addGeneratedAnnotation = false
lombok.anyConstructor.suppressConstructorProperties = true

lombok.configがない場合は追加しただけです

上記は、次の投稿でロンボクの開発者によって提案されました
addGeneratedAnnotation
suppressConstructorProperties

5
Mubashar

Lombok Webサイトのセットアップガイド( Android用に設定されたlombok )には、2つのことを行う必要があると書かれています

1、ロンボクプラグインをインストールする

2、gradleの依存関係を追加する

dependencies {
  compileOnly 'org.projectlombok:lombok:1.18.6'
  annotationProcessor 'org.projectlombok:lombok:1.18.6'
}

しかし、私にとっては、プラグインが原因で問題が発生します。プラグインを無効にした後、エラーはなくなり、ロンボクは引き続き機能します。

3
ssynhtn

セットアップマニュアルの説明に従ってください。

GradleあなたのAndroidプラグインが> = 0.4.3であることを確認してください。 (Gradle v2.12以降が必要です):

dependencies {    
 compileOnly "org.projectlombok:lombok:1.16.18" 
}

Android Studio前の指示(Gradle)に従ってください。 gradleプロジェクトを正しくセットアップすることに加えて、Lombok IntelliJプラグインを追加して、Android Studio:

  1. [ファイル]> [設定]> [プラグイン]に移動します
  2. [リポジトリの参照]をクリックします...
  3. Lombokプラグインを検索
  4. プラグインのインストールをクリックして再起動Android Studio

https://projectlombok.org/setup/Android

0
MSS

Android Studio v3.5(2019年8月)以前では、注釈プロセッサの設定はありませんでした。ただし、依存関係セクションのbuild.gradleで定義するだけで十分です:

dependencies {
...
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
...
}

Android studioが「Lombokには注釈処理が必要」という文句を言う場合、問題を解決したのはLombokプラグインの再インストールと「キャッシュの無効化/再起動」でした。

0
dobrivoje