私はAndroidプロジェクト用の注釈プロセッサを作成しており、状況に遭っています。ライブラリモジュールから注釈付きのクラスを処理したいと思います。つまり、appモジュールはライブラリモジュールに依存しており、ライブラリモジュールから注釈付きのクラスを処理する必要があります。注釈処理サードパーティのライブラリ
しかし、アノテーションプロセッサは、おそらくコードがコンパイルされているため、アノテーションを依存関係から「見る」ことができません。別のライブラリの問題については、hereを参照してください。私のプロジェクトの問題のデモンストレーションは支店hereにあります。 sample
モジュールのアノテーションは処理されますが、lib
モジュールのアノテーションは処理されません。
これはすべてうまくいきました。この機能がなくても私は辞めてしまいましたが、Androidデータバインディングライブラリはモジュールやサードパーティライブラリのアノテーションを処理できます。 Thisライブラリは、例えば、アプリケーションによって細かく処理される@BindingAdapter
メソッドを提供します。
私は利用していないアノテーションの保存タイプを設定して遊びました。私が見ることができる唯一の重要な違いは、メソッドがクラス(型)をターゲットにしている間に、データバインディングプロセッサがメソッドをターゲットにしていることですが、プロセッサと違いはないと思います。だから、私はそれがデータバインディングプロセッサーは、Androidプラグインの一部であるかもしれないが、私はここでどのように役立つか分からないと思っています。
誰でもこれがどのように行われたか知っていますか?
私は少しあなたの質問で混乱しています。あなたが望むことをしないような例がありますか?保持ポリシーがランタイムである限り、コンパイルされているかどうかは、私が知っている限り重要ではありません。 –
私は、ランタイムプロセッサのアノテーションについては問題ではありませんが、パフォーマンス上の理由から、Androidでより一般的に使用されるパターンであるコンパイル時のプロセッサアノテーションについてはそうであると理解しています。私は現在サンプルプロジェクトを設定していませんが、私が参照しているプロジェクトで参照しているClassIndexプロジェクトを含め、参照されている問題で説明した問題を示す必要があります。 –
"*注釈プロセッサは依存関係から注釈を「見る」ことができません。おそらくコードが既にコンパイルされているからです。*" - あなたが私たちから与えたリンクの返答は "*カスタムプロセッサはあなたはその返事を読まなかったようです。あなたの問題を解決する可能性のある情報が含まれている可能性があります。 –