Frage

Ich habe einen Code, der 99% der Zeit ist in vielen Clients bereitstellen, da funktioniert, aber manchmal bekomme ich die folgende:

  

java.lang.reflect.InvocationTargetException     android.widget.LinearLayout. (LinearLayout.java:92)       java.lang.reflect.Constructor.constructNative (native Methode)       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)   .....

und auf meinem Code ich habe:

  

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

Die Frage ist also, warum ich InvocationTargetException bin immer.

Danke

War es hilfreich?

Lösung

Sie können versuchen getLayoutInflater() statt Ihrem getSystemService() Anruf, obwohl ich nicht sicher bin, die einen Unterschied machen wird.

Ein InvocationTargetException kommt aus der Reflexion, und bedeutet, dass die Method, die aufgerufen wurde eine Exception warf. Haben Sie ein Zeichen eines anderen Stack-Trace sehen, dass die zugrunde liegende Exception sein könnte? Wenn nicht, versuchen InvocationTargetException Fang und Blick auf getCause(), um zu sehen, was wirklich los ist.

Andere Tipps

Ich hatte auch das gleiche Problem.

Ich löste dieses Problem durch:

Machen Sie die lokale Variable

private Context **context**;

Dann in Ihrer Klasse Konstruktor (das Argument Context Kontext hat) tun dies

this.context=**context**;

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

theview = li.inflate(R.layout.partofthescreen, somecontainer, false);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top