Подтвердить что ты не робот

ActionBarSherlock - Стиль содержит ключ с плохой записью

Я пытаюсь использовать ActionBarSherlock в одном конкретном действии, которое я объявил в манифесте следующим образом:

<activity
        android:name=".activities.Bla"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.Sherlock" />

Мой код действия:

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;
  }
}

Однако каждый раз, когда я запускаю это в Android 2.1, я получаю следующую ошибку:

E/ResourceType(9672): Style contains key with bad entry: 0x01000000

Я думаю, это может быть связано с этим вопросом: читать новые атрибуты темы на старой платформе, но я не знаю, как ее решить.

Любые предложения? Спасибо!

4b9b3361

Ответ 1

Это связано с тем, что вы используете атрибуты темы, которых не было на платформе, на которой вы запускаете приложение. Несмотря на гигантский красный журнал ошибок, который он добавляет, это скорее предупреждение, так как оно не влияет на другие атрибуты. Новые атрибуты никогда не читаются на старых платформах.

Связанный с вами вопрос был моей попыткой не требовать использования зеркальных атрибутов ABSv4.

Если вы действительно хотите избавиться от ошибки, вы можете создать два набора ваших стилей. Один в values/ для панели действий совместимости и один в values-v14/, который использует префиксные атрибуты для собственной панели действий.

И, пожалуйста, пожалуйста, пожалуйста, не использовать maxSdkVersion. Вместо этого используйте targetSdkVersion.