【问题标题】:Lint for android in Eclipse gives wrong resultsEclipse 中 android 的 Lint 给出了错误的结果
【发布时间】:2012-03-24 11:33:24
【问题描述】:

如果我运行“lint”。在项目目录中,我得到了预期的警告,但是如果我从 eclipse 内部运行它,我会得到无意义的错误和警告,例如:

  • 资源 R.array.settings_derivatives 似乎未使用[实际上已使用]
  • manifest中没有注册x.y.z[其实是注册了]
  • 调用需要 API 级别 3(当前最小值为 1):android.view.SurfaceView#isInEditMode [实际上 minSdkVersion 设置为 7]

编辑:如果我创建一个新工作区并导入现有项目,我会得到正确的错误

【问题讨论】:

  • Call requires API level 3 是真的。这与您的目标级别无关,而是与引入该方法的“自 API 3 以来”有关。您可能可以关闭该警告 - 只有当您想将您的应用程序移植到您当前拥有的较低最低级别时才有意义
  • 这是真的,但它不应该被报告,因为我已经将 minSdkVersion 设置为 7。而且它不是作为警告报告,而是作为错误报告......我的观点是命令行工具给出不同的 [正确] 结果
  • 首先,确保您使用的是最新的工具 (R17) 和相应的 Eclipse 插件。如果问题仍然存在,则创建一个重现问题的示例项目,然后向b.android.com 提交错误报告。我以前从未见过这些特定消息。
  • 最新工具和 Eclipse 插件。将尝试在一个较小的项目上重现
  • 你是对的 - 我误解了检查的错误/目的。试试Project > Clean..,这可能有助于解决问题。顺便说一句:我对isInEditMode 没有任何警告。如果您的项目中存在其他错误(例如清单中的非法 xml 语法),这些警告/错误检查器经常会感到困惑。

标签: android eclipse android-lint


【解决方案1】:

似乎有问题,当项目目录不在工作区目录下时。

截至今天,该错误应在版本 20 中得到修复: http://code.google.com/p/android/issues/detail?id=27527

编辑:

如有必要,您可以在工作区中建立软链接。

【讨论】:

    【解决方案2】:

    通过将工作区切换到新的工作区来解决问题。这可能是以前 lint 版本遗留的设置问题

    【讨论】:

      【解决方案3】:

      我用这个解决了同样的问题:-

      右击项目文件夹>Android工具>清除链接标记

      “Run Android Lint”会生成一些标记,这些标记会导致此错误。

      【讨论】:

        【解决方案4】:

        “Preference --> Android --> Lint Error Checking”,搜索issues“NewApi”,就可以看到设置了。

        此检查会扫描应用程序中的所有 Android API 调用,并警告在此应用程序所针对的所有版本上不可用的任何调用(根据清单中的最小 SDK 属性)。

        如果您的代码故意访问较新的 API,并且您已确保(例如通过条件执行)此代码只会在受支持的平台上被调用,那么您可以注释您的类或方法使用@TargetApi

        【讨论】:

        • 我知道警告的含义。关键是警告不应该在那里!
        猜你喜欢
        • 2019-12-02
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        • 2016-07-11
        • 2019-03-24
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多