ActionBarSherlock - 样式包含输入错误的键

Hug*_*des 20 android android-theme actionbarsherlock

我正在尝试在一个特定的活动中使用ActionBarSherlock,我在Manifest中声明了这样的活动:

<activity
        android:name=".activities.Bla"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.Sherlock" />
Run Code Online (Sandbox Code Playgroud)

我的活动代码是这样的:

public class Bla extends SherlockFragmentActivity implements ActionBar.OnNavigationListener {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.bla);
    getSupportActionBar().setTitle("");
    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    Context context = getSupportActionBar().getThemedContext();
    ArrayAdapter<CharSequence> list =
        ArrayAdapter.createFromResource(context, R.array.cartaz_filters, R.layout.actionbar_spinner_item);
    list.setDropDownViewResource(R.layout.actionbar_spinner_dropdown_item);
    getSupportActionBar().setListNavigationCallbacks(list, this);
  }

  @Override
  public boolean onNavigationItemSelected(int itemPosition, long itemId) {
    return true;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,每次我在Android 2.1中运行它时都会出现以下错误:

E/ResourceType(9672): Style contains key with bad entry: 0x01000000
Run Code Online (Sandbox Code Playgroud)

我认为这可能与这个问题有关:在较旧的平台上阅读较新的主题属性但我不知道如何解决它.

有什么建议?谢谢!

Jak*_*ton 46

这是因为您使用的是运行应用程序的平台上不存在的主题属性.尽管它添加了巨大的红色错误日志,但它更多的是警告,因为它不会影响其他属性.较旧的平台上永远不会读取较新的属性.

我的链接问题是我尝试不必要求ABSv4使用镜像属性.

如果你真的想摆脱错误,你可以创建两套你的风格.一个values/用于兼容性操作栏,另一个values-v14/用于本机操作栏的前缀属性.

请,请,请不要使用maxSdkVersion.请targetSdkVersion改用.

  • 我有很多样式,我无法弄清楚哪一个导致问题.有没有办法根据资源十六进制代码找到它? (13认同)