InvocationTargetException sur le gonflage d'un xml - Applications
Question
J'ai un code qui fonctionne 99% du temps depuis Deploy est dans un bon nombre de clients, mais parfois je reçois le texte suivant:
java.lang.reflect.InvocationTargetException android.widget.LinearLayout. (LinearLayout.java:92) java.lang.reflect.Constructor.constructNative (méthode native) 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) .....
et sur mon code, j'ai:
LayoutInflater li = (LayoutInflater) ce .getSystemService (Context.LAYOUT_INFLATER_SERVICE);
theview = li.inflate (R.layout.partofthescreen, unConteneur, false);
la question est donc pourquoi je reçois InvocationTargetException.
Merci
La solution
Vous pouvez essayer getLayoutInflater()
au lieu de votre appel getSystemService()
, bien que je ne suis pas certain que cela va faire une différence.
Un InvocationTargetException
vient de la réflexion, et signifie que le Method
qui a été invoqué jeté un Exception
. Voyez-vous un signe d'une autre trace de pile qui pourrait être la Exception
sous-jacente? Sinon, essayez attraper InvocationTargetException
et regarder getCause()
pour voir ce qui se passe réellement.
Autres conseils
J'ai eu le même problème.
Je résolu ce problème en:
Faire la variable locale
private Context **context**;
Ensuite, dans votre constructeur de la classe (qui a l'argument contexte de contexte) faire
this.context=**context**;
LayoutInflater li = (LayoutInflater) **context** .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
theview = li.inflate(R.layout.partofthescreen, somecontainer, false);