4

@JavascriptInterface 注释适用于 api 17 及更高版本。对于我的项目,无法找到注释,因为我的目标 api 设置为 13:

我的项目构建目标

在我的清单中,min sdk 是 11:

 <uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="18" />

为什么我必须进入项目构建目标(例如,Eclipse 中的 Project > Properties > Android)并将其更改为 API 17+ 作为解决方案。现在,当我真正想做的只是忽略 API 17 以下任何内容的注释时,我必须针对该 SDK 进行构建。无论如何我可以做到吗?我不喜欢针对 api 17 构建然后发现我的代码无法在以前的版本上运行的想法。我的目标是确保我的应用程序可以在 api 13 到 18 上运行。如果 commonsWare 在附近,也许他可以建议我缺少的东西......

4

1 回答 1

1

对于我的项目,无法找到注释,因为我的目标 api 设置为 13:

然后解决这个问题,或者将你设置android:targetSdkVersion得足够低以至于你不需要@JavascriptInterface

为什么我必须进入项目构建目标(例如,Eclipse 中的 Project > Properties > Android)并将其更改为 API 17+ 作为解决方案。

因为@JavascriptInterface在 API Level 17 之前不存在,就像在DisplayManagerAPI Level 17 之前不存在一样。

现在,当我真正想做的只是忽略 API 17 以下任何内容的注释时,我必须针对该 SDK 进行构建。

由于您的构建目标不会影响您可以使用的类、方法、注释等以外的任何内容,因此我看不到这个问题。

我不喜欢针对 api 17 构建然后发现我的代码不会在以前的版本上运行的想法。

一年多来,Lint 一直在报告 API 级别的违规行为。只要确保你android:minSdkVersion的设置正确。

毕竟,您已经在依赖这个了,因为您android:minSdkVersion的设置为11并且您的构建目标当前设置为 13。这意味着您正在计算 Lint 来报告您在哪里使用 API 级别 12 和 API 级别 13 API,以便您可以妥善处理它们。您通过提高构建目标所做的一切就是提高您依赖 Lint 的事情的数量。

于 2013-09-25T20:41:41.700 回答