2

フローズンヨーグルトから利用できるリフレクションを介して関数を呼び出しています。この通話にフローズンヨーグルトが必要であることをどのようにマークできますか?

注釈@TargetApi(Build.VERSION_CODES.FROYO)がありますが、これは警告を防ぐだけです。このバージョンが一致しない場合に警告を生成したいと思います。

SDKサイトからの方法がない場合、そのような注釈を書くことは可能ですか?私はそれをよく知らない。

4

2 に答える 2

1

アノテーションは単なるメタデータであり、実際にそれらを処理するためのツールが必要です。必要なことを逆に行うためのlintチェックはありません。http://tools.android.com/tips/lint-checksによると何かが特定のAPIを必要とすることを示します。

APIを提供する場合は、関数のJavadocに要件を文書化して、呼び出し元がその特定の呼び出しにFroyoが必要であることを認識できるようにするのが最適です。この関数では、この前提条件が満たされない場合は例外をスローするか、他の方法で処理する必要があります。

ライブラリを作成している場合の別のオプションは、そのプロジェクトのminSdkバージョンを8以上に設定することです。

また、カスタムチェックを行う独自のリントルールを作成することもできます。lintルールの記述の詳細については、http://tools.android.com/tips/lint-custom-rulesを参照してください。欠点は、APIのユーザーがルールをアクティブ化するためにいくつかのカスタムセットアップを実行する必要があることです。

于 2012-12-28T09:25:15.270 に答える
0

私はこれについて言及するのを完全に忘れましたが、このアノテーションは、バグレポートを提起した後@RequiresApi、2016年にSupportLibv24で実際に導入されました。

于 2021-05-18T05:57:47.507 に答える