【问题标题】:Eclipse can't find Theme.Sherlock in ActionBarSherlockEclipse 在 ActionBarSherlock 中找不到 Theme.Sherlock
【发布时间】:2012-06-15 19:50:30
【问题描述】:

这是直接复制自我在 Google 网上论坛上提出的问题:

我在 Eclipse(Indigo) 中使用 ABS 时遇到问题。我正在使用 ABS 4.1.0。我在 Eclipse 中从 /library 创建了一个项目,将构建目标设置为 14,将 minSdk 设置为 14,Java 合规级别设置为 1.6,正如我被告知的那样。 ABS项目中没有错误,但是在我自己的项目中,minSdk 7,targetSdk 14,build target 14和ABS添加为库,我在AndroidManifest.xml中得到这个错误:

Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.Sherlock')

即使我已经导入了 ABS。
另外,R.java 拒绝生成,所以我的课堂上也有一堆“R 无法解析为变量”。两者有关系吗?

如果您需要更多信息,请告诉我。
帮助将不胜感激。

【问题讨论】:

  • 如果您的应用具有 14 的最低 sdk 版本,为什么还要使用 ActionBarSherlock?你不能用普通的ActionBar吗?!
  • ABS(库)的最小 sdk 为 14,项目本身(应用程序)的最小 sdk 为 7,正如我被告知的那样。
  • 我还发现,当我查看示例的属性时,ABS 库旁边有一个绿色的复选标记,但在我的项目的属性中,库旁边有一个红色的 X。
  • 我认为,基于this 链接,这是由于我将库和工作区保存在不同的驱动器(C: 和 D:) 上造成的。这可能是我愚蠢的。我会移动图书馆,看看会发生什么。

标签: android actionbarsherlock


【解决方案1】:

嗯,这确实让我觉得自己很愚蠢。但现在我可以睡个好觉了(这些事情总是让我夜不能寐)。

导致我出现问题的原因仅仅是该库与我的工作区(分别为 D: 和 C:)不在同一个驱动器上,因此 Eclipse 无法在两者之间创建相对路径。我只是将库移动到 C: 并且它起作用了。

Thanks to this question that put me on the right path.

【讨论】:

    【解决方案2】:

    在我的情况下,lib 位于另一个硬盘上(不在 eclipse 工作区中)。在我将 lib-project 移入工作空间后,它就起作用了。

    【讨论】:

      【解决方案3】:

      1) 从项目的 lib 目录中删除 library-4.0.0.jar 和 android-support-4.0.jar(或取消链接)。在我看来,设置指南对此有点不清楚。 android-support-library 只需要添加到ABS-Library-Project,而不是你的项目。

      2) 尝试清理您的库项目和实施项目。另外,右键单击每个项目并选择 Android --> Fix project properties

      3) 检查库项目的属性-->Android 屏幕上的“是库”复选框是否已选中,并且您已在实施项目的此屏幕上添加库项目(而不是作为外部/Java 库)

      4) 尝试导入可从 ABS 网站下载的“ABS 示例项目”,看看是否出现相同的错误。

      5) 在出现与“R 无法解析...”相关的错误的 Java 类中,检查您导入的是 import com.yourcompany.yourapp.R; 而不是 ABS-R。修复您遇到的任何错误(或只是暂时删除引发错误的代码),以便可以正确生成项目的R-文件。清单中的错误应该会在之后消失。

      【讨论】:

      • 这没有帮助。 :( 另外,/lib 中没有 library-4.0.0.jar。应该有吗?
      • 我已经用一些额外的建议更新了我的原始答案
      • 是的,ABS 已作为库项目添加,并且 ABS 已选中“是库”。但是样本根本没有给出任何错误!
      • 我认为这与“R 无法解析”错误有关。我再次更新了我的答案:-)!
      • 你应该导入 R 吗?样品不这样做,但我会尝试任何可行的方法。
      【解决方案4】:

      尝试将您的目标 API 级别(ActionBarSherlock 项目和您的)更改为 15。

      1. 更新您的清单:android:targetSdkVersion="15"
      2. 通过在 Project Explorer 中右键单击您的项目并选择 Properties,然后单击 Android(在左侧面板中),将构建目标更改为“Android 4.0.3”,然后勾选 API 15 对应的复选框。

      另外,删除引用的库(带有红色 X 的库)并重新添加它。现在应该有一个绿色检查。我相信,一旦你这样做了,一切都会奏效。

      【讨论】:

      • 很遗憾,这没有帮助。
      • 嗯,值得一试。我知道你需要根据 API 15 构建你的项目,但是...... Jake Wharton 是这么说的(我忘记了在哪里......但相信我,他是这么说的:P)。
      • @vurp,再次查看我的帖子。红色 X 不好...删除库,然后重新添加它(浏览到 library 文件夹并单击添加)。现在应该有一个绿色检查,我相信它会起作用。
      • 已经解决了。将库和工作区放在不同的驱动器上是个坏主意。
      【解决方案5】:

      我终于找到了解决办法:

      1. 重要!在两个项目中复制相同的 android-support-v4.jar:在库和您的项目中(这是主要问题)。
      2. 将“库”项目导入您的工作区
      3. 右键单击库项目属性 -> Android -> 选中“目标名称”4.x(任何,API 级别 14,15 或 16)。底部检查“是图书馆”。
      4. 在属性中,转到“Java 构建路径”,选项卡“库”,然后在“Android 依赖项”中通常找到“android-support-v4.jar”。确定并关闭属性。
      5. 右键单击库项目 Android 工具 -> 修复项目属性
      6. 在菜单项目 -> 清理...中选择清理“库”项目。

      在这个地方,你的项目“库”必须完成(没有错误)

      1. 创建或导入您自己的项目。示例“我的项目”
      2. 在属性中,转到“Java Build Path”,选项卡“Libraries”,然后在“Android Dependencies”中正常找到“android-support-v4.jar”。
      3. 现在转到“项目”选项卡。添加...并选择“库”项目。
      4. 现在在属性中转到 Android -> 检查“目标名称”4.x(任何,API 级别 14,15 或 16)。重要提示:必须与“库”项目相同。底部的“是图书馆”必须取消选中,在这个地方按添加...并选择“图书馆”项目。确定并关闭属性。
      5. 右键单击“MyProject”项目 Android 工具 -> 修复项目属性
      6. 在菜单项目 -> 清理... 并选择清理“MyProject”项目。

      您的项目必须完成。如果错误仍然存​​在,请重新启动 Eclipse。

      【讨论】:

        猜你喜欢
        • 2012-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        相关资源
        最近更新 更多