XMLを膨らませるのにInvocationTargetException - アンドロイド
質問
私は多数のクライアントに配備以来、時間の99%を動作するコードを持っていますが、時々私は、次を得る:
にjava.lang.reflect.InvocationTargetException android.widget.LinearLayout。(LinearLayout.java:92) java.lang.reflect.Constructor.constructNative(ネイティブメソッド) 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) .....
と私のコードに私が持っています:
私はInvocationTargetExceptionが記録取得していますなぜLayoutInflater李=(LayoutInflater)この .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
theview = li.inflate(R.layout.partofthescreen、 somecontainer、偽);
そこで質問です。
おかげ
解決
あなたは、私が違いを生むだろうということを確認していないものの、代わりにあなたのgetLayoutInflater()
コールのgetSystemService()
を試すことができます。
InvocationTargetException
が反射から来ている、と呼び出されたMethod
がException
を投げたことを意味します。あなたは、基礎となるException
かもしれない別のスタックトレースの兆候を参照していますか?ない場合は、InvocationTargetException
をキャッチし、実際に何が起こっているか確認するためにgetCause()
を見てみます。
他のヒント
私も同じ問題を抱えていました。
私がすることによって、その問題を解決します:
ローカル変数を作成します。
private Context **context**;
次に、(引数のコンテキストコンテキストを持っている)あなたのクラスのコンストラクタでこれを行う
this.context=**context**;
LayoutInflater li = (LayoutInflater) **context** .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
theview = li.inflate(R.layout.partofthescreen, somecontainer, false);