无法解析@ style/Theme.Sherlock

Ten*_*eve 16 android actionbarsherlock

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

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

找不到与给定名称匹配的资源(在'theme'处,值为'@ style/Theme.Sherlock').

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

扩展SherlockActivity实现ActionBar.TabListener

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

dom*_*som 16

我遇到的陷阱是这样的:在ActionBarSherlock项目参考必须在Android->项目属性的库部分,而我一直将它添加到构建路径 - >库.


t0m*_*13b 9

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

已经构建了使用ABS的android项目,在Gingerbread上运行它工作正常,在ICS崩溃,因此ICS发生崩溃,请检查你的AndroidManifest.xml(为了简洁而修剪了一些...

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@style/Theme.Sherlock">
Run Code Online (Sandbox Code Playgroud)

这是android:主题部分引起了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 ....
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这是错的.`Theme.Sherlock`(及其变体)可用于所有API级别.如果它在ICS上崩溃,则出于不同的原因. (6认同)
  • 这不应该是必要的.我在许多示例应用程序中使用了ActionBarSherlock,从Android 2.1到4.0.3,在`<application>`中定义的样式没有任何不良影响.虽然你的方法*可能*目前*工作*,但我不会依赖它 - 如果你使用`SherlockActivity`或亲属,你真的应该使用正确的主题. (2认同)