Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActionBarSherlock - Style contains key with bad entry

Tags:

I'm trying to use ActionBarSherlock in one specific activity which I've declared in the Manifest like this:

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

My Activity code is this:

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

However, every time I run this in an Android 2.1 I get the following error:

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

I think this might be related with this question: Read Newer Theme Attributes On Older Platform but I don't know how to solve it.

Any suggestions? Thanks!

like image 401
Hugo Fernandes Avatar asked Mar 13 '12 15:03

Hugo Fernandes


1 Answers

This is because you are using theme attributes that were not present on the platform on which you are running your application. Despite the giant red error log that it adds, it's more of a warning as it does not affect the other attributes. The newer attributes are never read on the older platforms.

The linked question from me was my attempt to not have to require ABSv4 use mirrored attributes.

If you really want to get rid of the error you can create two sets of your styles. One in values/ for the compatibility action bar and one in values-v14/ that use the prefixed attributes for the native action bar.

And please, please, please, please do not use maxSdkVersion. Use targetSdkVersion instead.

like image 96
Jake Wharton Avatar answered Oct 14 '22 07:10

Jake Wharton