【问题标题】:Cannot Resolve @style/Theme.Sherlock无法解决@style/Theme.Sherlock
【发布时间】:2012-04-27 14:34:47
【问题描述】:

我正在尝试使用 Actionbar Sherlock 4,针对 sdk 15 和 min sdk 8。按照使用网站上提供的说明和此处发布的精彩视频进行操作后:http://www.youtube.com/watch?v=avcp6eD_X2k

我仍然遇到问题。当我尝试将 android:theme="@style/Theme.Sherlock" 添加到我的清单文件时,我收到错误:

找不到与给定名称匹配的资源(在具有值的“主题”处 '@style/Theme.Sherlock')。

我已将 actionbar Sherlock 库项目包含在我的项目中,并且导入语句在那里并且没有出现任何错误,我已经

扩展 SherlockActivity 实现 ActionBar.TabListener

就像在演示代码和文档中一样但是,eclipse 仍然给我这个错误。有什么想法吗?

【问题讨论】:

  • 你在用eclipse吗?您是否将 Actionbar Sherlock 标记为 android 库?

标签: android actionbarsherlock


【解决方案1】:

我遇到的陷阱是:对 ActionBarSherlock 项目的引用需要在项目属性的 Android->Libraries 部分中,而我一直将它添加到 Build Path->Libraries 中。

【讨论】:

  • 这个答案让我免于痛苦
【解决方案2】:

我遇到了一个可能有帮助的奇怪异常!

已经构建了使用 ABS 的 android 项目,在 Gingerbread 上运行它工作正常,在 ICS 中它崩溃了,ICS 下的崩溃是由于这个原因,检查你的 AndroidManifest.xml (已经修剪掉位简洁...

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@style/Theme.Sherlock">

android:theme 部分在 ICS 下导致崩溃,在 Gingerbread 和旧版本下运行良好!解决方案是完全删除它!然后从您的 Activity 中执行以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {
   if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH){
        this.setTheme(com.actionbarsherlock.R.style.Theme_Sherlock);
   }
   super.onCreate(savedInstanceState);
   ... // MORE CODE ....
}

这修复了 ICS 下的崩溃,ICS 不喜欢主题样式,但它适用于小于 2.3 和 4.0 以上的两个版本.. 奇怪的错误,但我是侥幸发现的!

记得在调用基类自己的onCreate之前应用主题!

【讨论】:

  • 这不是必须的。我在从 Android 2.1 到 4.0.3 的所有示例应用程序中都使用了 ActionBarSherlock,其样式在 &lt;application&gt; 中定义,没有任何不良影响。虽然你的方法可能当前有效,但我不会依赖它——如果你使用SherlockActivity 或kin,你真的应该使用正确的主题。
  • 我不敢苟同,那在 ABS 中使用的正确主题...只是说它是使用的最新最好的版本。
  • 这是错误的。 Theme.Sherlock(及其变体)可用于所有 API 级别。如果它在 ICS 上崩溃,则原因不同。
  • @Roylee 您需要清理项目并重新编译源代码;)
  • @t0mm13b 你有让 github android 或比特币钱包在 eclipse 上工作的经验吗?可以给我一些指南吗?因为我试过maven但没有结果,不知道是不是我做错了。
【解决方案3】:

我在 Eclipse 上包含库项目的标准过程如下:

  • 导入库项目
  • 右键库项目属性 -> Android -> 设置项目构建目标(确保库和主项目相同)
  • 右键单击库项目 Android 工具 -> 修复项目属性
  • 选择库项目,然后选择 Project -> Clean...
  • 选择主项目,然后选择项目 -> 清理...

这应该可以解决你的所有问题。

【讨论】:

  • 感谢您的快速回复。不幸的是,这个技巧并没有解决错误。
【解决方案4】:

我终于找到了解决办法:

  1. 重要!在两个项目中复制相同的 android-support-v4.jar:在库和您的项目中(这是主要问题)。
  2. 将“库”项目导入您的工作空间
  3. 右键单击库项目属性 -> Android -> 选中“目标名称”4.x(任何,API 级别 14,15 或 16)。底部检查“是图书馆”。
  4. 在属性中,转到“Java Build Path”,选项卡“Libraries”并在“Android Dependencies”中正常找到“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。

【讨论】:

    【解决方案5】:

    我通过我的项目中的以下两个步骤解决了这个问题:

    1. 从“项目属性”/构建路径中删除“库”,并在“项目属性”/Android/Library 中添加库
    2. 右击项目“Android工具”->“添加支持库”

    【讨论】:

      【解决方案6】:

      在导入库和设置活动这两个项目后,首先清理并构建它们。 然后右键单击settingActivity项目->属性->从左侧菜单中选择第二个选项(即android)。 在右侧他们是库部分只需单击添加库。 prper 路径将自动进入该框架。 这解决了我的问题,我没有错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-11
        • 2015-04-30
        • 2018-12-03
        • 1970-01-01
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        • 2018-06-01
        相关资源
        最近更新 更多