13

I have a code that works 99% of the time since is deploy in lots of clients, but sometimes I get the following:

java.lang.reflect.InvocationTargetException android.widget.LinearLayout.(LinearLayout.java:92) java.lang.reflect.Constructor.constructNative(Native Method) java.lang.reflect.Constructor.newInstance(Constructor.java:446) android.view.LayoutInflater.createView(LayoutInflater.java:499) com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562) android.view.LayoutInflater.rInflate(LayoutInflater.java:617) android.view.LayoutInflater.inflate(LayoutInflater.java:407) android.view.LayoutInflater.inflate(LayoutInflater.java:320) com.mycode.mycode.MyClass.draw(xxxxxxx) .....

and on my code I have:

LayoutInflater li = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
theview = li.inflate(R.layout.partofthescreen, somecontainer, false);

so the question is why I am getting InvocationTargetException.

Thanks

Daniel Benedykt
  • 6,263
  • 12
  • 47
  • 70

2 Answers2

20

You can try getLayoutInflater() instead of your getSystemService() call, though I am not sure that will make a difference.

An InvocationTargetException comes from reflection, and means the Method that was invoked threw an Exception. Do you see any sign of another stack trace that might be the underlying Exception? If not, try catching InvocationTargetException and looking at getCause() to see what is really going on.

CommonsWare
  • 910,778
  • 176
  • 2,215
  • 2,253
10

I also had the same problem.

I solved that problem by:

Make the local variable

private Context **context**;

Then in your class constructor( which has argument Context context) do this

this.context=**context**;

LayoutInflater li = (LayoutInflater) **context** .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

theview = li.inflate(R.layout.partofthescreen, somecontainer, false);
Fat Monk
  • 1,569
  • 1
  • 20
  • 43
PritiJinny
  • 101
  • 2
  • 1
    It's because `getContext()` might result in a different (wrapped) context than the one passed in the constructor – Takhion Dec 31 '14 at 13:17