1

動機:

コンパイル時の注釈処理が私の問題に合うかどうか試してみたいと思います。そのままで動作する必要があり、コンパイラの引数などは必要ありません。


現在の状態:

私は持っている:

  • 注釈
  • 注釈プロセッサ
  • これらの両方を含む .jar と、META-INF/services にプロセッサのFQCNを含む javax.annotation.processing.Processor ファイル

何が起こるべきか:

  • プロセッサを自動検出する必要があります
  • 注釈を処理し、新しいクラスを作成する必要があります (WiredAnnotated)
  • このクラスをコンパイルの 1 つのステップで使用できるはずです (複数のフェーズではありません)。
  • このクラスが生成されたことをエディターに受け入れてほしくない (たとえば、 AndroidAnnotationsもこれを管理する)

実際に何が起こるか:

  • プロセッサを自動検出します
  • 新しいクラスを作成します (in out/production/*/generated/)
  • 私はこのクラスを使用することができます
    • ソースコードは正しく見えます
    • 逆コンパイルすると、それも問題ないように見えます
  • エディターはクラスを解決できません (スクリーンショットを参照)

私が試したこと:

  • IntelliJ の再起動
  • キャッシュの無効化
  • 注釈プロセッサの出力を確認しています

スクリーンショット:

ここに画像の説明を入力

コンパイルすると、実際に期待どおりに動作します。間違ったディレクトリの検査と関係があると思います。

私が間違っていることについて誰かが考え/手がかりを持っていますか? あなたが私を助けるのに役立つ情報を見逃しましたか?

前もってありがとう、ティル

4

1 に答える 1

0

out/production/*/generated/プロジェクトのソース フォルダに追加する必要があります。したがって、IntelliJ は生成されたクラスを認識します。

ディレクトリを右クリックして、ディレクトリをソースルートとしてマークすることで作成できます。

また

プロジェクト構造 (F4) > モジュール > ソース タブ > ソース フォルダーには、ソース コードを含むすべてのディレクトリが含まれている必要があります。

Androidgenでは、ルート フォルダーに dir がありますが、青または緑に光ります。これは、ソース フォルダーとしてマークされていることを意味します。プロジェクト構造 > モジュールにも表示されます。RBuildConfigおよびが含まれていますManifest

于 2013-11-08T15:46:22.087 に答える