java.lang.illegalstateexception: a factory has already been set on this layoutinflater

samvijay picture samvijay · Nov 16, 2012 · Viewed 8.1k times · Source

I have tried to change the background color of options menu in my android app. I am using ActionBarSherlock library. I have tried this code for changing the background color of options menu

https://stackoverflow.com/a/8475357/584095

But I ended up with an exception "java.lang.illegalstateexception: a factory has already been set on this layoutinflater" at line

LayoutInflater.setFactory();

I don't know what is wrong in this code. Can anyone help me in resolving this issue?

Answer

Ilya Gazman picture Ilya Gazman · Apr 27, 2015

There been a change in support library since version 22.1.0.

You will get an IllegalStateException if you try to call getLayoutInflater().setFactory()

You should use the new api

Or simply use the old version

  • com.android.support:appcompat-v7:22.0.0
  • com.android.support:appcompat-v4:22.0.0