2

我正在通过反射调用一个函数,该函数自 froyo 以来可用。如何标记此呼叫需要 froyo?

有注释@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 规则,我猜它会进行自定义检查。有关编写 lint 规则的更多详细信息,请参见:http ://tools.android.com/tips/lint-custom-rules 。缺点是您的 api 用户必须执行一些自定义设置才能激活规则。

于 2012-12-28T09:25:15.270 回答
0

我完全忘了提到这一点,但这个注释@RequiresApi实际上是在 2016 年 Support Lib v24 中引入的,在提出错误报告之后

于 2021-05-18T05:57:47.507 回答