在Eclipse中使用Android Lint会得到错误的结果。

9
如果我在项目目录内运行“lint .”,我会得到预期的警告,但如果我在eclipse中运行它,我会得到无意义的错误和警告,例如:
- 资源R.array.settings_derivatives似乎没有使用[实际上被使用了] - x.y.z没有在清单中注册[实际上已经注册了] - 调用需要API级别3(当前最小值为1):android.view.SurfaceView#isInEditMode [实际上minSdkVersion设置为7]
编辑:如果我创建一个新的工作区并导入现有项目,我就会得到正确的错误。

这是事实,但不应报告,因为我已将minSdkVersion设置为7。它不会作为警告而被报告,而是作为错误... 而我的观点是命令行工具提供了不同的[正确]结果。 - miniBill
清理没有解决问题,也没有非法的 XML。尽管我有一个相当混乱的设置:Android 项目依赖于 Android 库,依赖于 J2ME 项目,依赖于另一个 J2ME 项目,所以如果出现混淆的话,我也不会感到太惊讶。 - miniBill
切换工作区并导入旧项目导致警告发生了变化。我猜这可能是由于工作区中的陈旧文件引起的问题。 - miniBill
@miniBill,错误修复后,问题是否仍然存在? - Pacerier
@Pacerier,抱歉我不再使用Eclipse了。 - miniBill
显示剩余7条评论
4个回答

3

3
问题得到解决是通过切换工作区到一个新的来实现的。这可能是由于之前的 Lint 版本留下的设置问题引起的。

0
我使用以下方法解决了同样的问题:
右键单击项目文件夹 > Android 工具 > 清除链接标记
“运行 Android Lint” 会创建一些标记,这些标记会导致此错误。

-1
"偏好设置 -> Android -> Lint错误检查",搜索问题 "NewApi",您就可以看到设置。
此检查会扫描应用程序中的所有Android API调用,并警告任何在此应用程序所针对的所有版本(根据其清单中的最小SDK属性)上不可用的调用。
如果您的代码有意访问较新的API,并且您已确保(例如通过条件执行)该代码仅在受支持的平台上调用,则可以使用@TargetApi注释您的类或方法。

1
我知道这个警告的意思。关键是这个警告不应该出现! - miniBill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接