14

多くのクライアントにデプロイされているため、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) ) .....

そして私のコードでは:

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

問題は、なぜ InvocationTargetException が発生するのかということです。

ありがとう

4

2 に答える 2

20

getLayoutInflater()電話の代わりに試してみることもできますgetSystemService()が、それが違いを生むかどうかはわかりません.

anInvocationTargetExceptionはリフレクションに由来し、Method呼び出された が an をスローしたことを意味しExceptionます。基になっている可能性のある別のスタック トレースの兆候が見られますExceptionか? そうでない場合は、キャッチInvocationTargetExceptionして見てみて、getCause()実際に何が起こっているかを確認してください。

于 2010-03-10T15:33:17.167 に答える
10

私も同じ問題を抱えていました。

私はその問題を次のように解決しました:

ローカル変数を作る

private Context **context**;

次に、クラスコンストラクター(引数コンテキストコンテキストを持つ)でこれを行います

this.context=**context**;

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

theview = li.inflate(R.layout.partofthescreen, somecontainer, false);
于 2010-04-07T16:43:41.273 に答える