【问题标题】:Eclipse/ADT giving hundreds of errors "resource entry is already defined"Eclipse/ADT 给出数百个错误“资源条目已定义”
【发布时间】:2013-05-08 18:13:38
【问题描述】:

我在 Linux (ADT v21.1.0-569685) 上使用 Android 开发人员工具 (ADT) 附带的最新 Eclipse。 我继承了一个大的 Android 项目,Eclipse 不会构建它。

有数百个这样的错误:“错误:资源条目已定义”。

在 res/values/string.xml 中: <string name="about">About</string>

在 res/values-de/string.xml 中: <string name="about">Über</string>

据我所知,这是在 Android 上执行 i18n 的常见且正确的方法,但 Eclipse 将其全部视为错误。

这不是在其他地方询问和回答的“主要”资源和 XML 执行的“已定义”错误。我没有运行任何 XML 转换,也没有任何“额外”的 XML 文件。

这似乎不是 Eclipse 配置错误,因为如果我创建一个具有完全相同条目的小型示例项目,重复不会导致“已定义”错误。

【问题讨论】:

  • 尝试进入项目 -> 清理
  • 是的,我已经清理和重建了很多次。总是会出现同样的错误。
  • 你确定它是一个Android项目而不是一个标准的eclipse项目?
  • 只是想我会说该项目也是通过 ant 构建的,我们能够以这种方式构建。
  • 更新:我们找到了解决方案。这个 Android 项目是使用 Eclipse 的独立版本创建的,但我试图使用与 ADT 捆绑在一起的 Eclipse 版本来构建它。当我尝试直接从 Eclipse 网站(将 ADT 作为插件安装)使用独立的 Eclipse 时,问题不会发生(构建变得更远)。希望对某人有所帮助!

标签: android eclipse internationalization resources


【解决方案1】:

当资源限定符的组合无效时也会发生此错误。

例如,drawable-xhpdi-v1 没有真正意义,因为 xhdpi 直到 v8 才引入。

【讨论】:

    【解决方案2】:

    当 res/raw 目录下的多个文件共享相同的文件名(不带扩展名)时,我发生了这种情况。比如:

    • myFile.csv
    • myFile.zip

    当你从这个目录加载资源时,Android 只需要标识符(在我们的例子中:raw/myFile):

    int resId = res.getIdentifier("raw/myFile","raw", ctx.getPackageName()) ;
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      相关资源
      最近更新 更多