2010-03-10 7 views
10

मैं एक कोड है कि समय के 99% के बाद से काम करता है ग्राहकों की बहुत सारी में तैनात है, लेकिन कभी कभी मैं निम्नलिखित मिल:InvocationTargetException - एंड्रॉयड

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 (लेआउटइनफ्लेटर.जावाचे 99) com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:56),210 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 ली = (लेआउट इन्फ्लैटर) यह .getSystemService (Context.LAYOUT_INFLATER_SERVICE);
अवलोकन = li.inflate (आर .layout.partofthescreen, कुछ कंटेनर, झूठा);

इसलिए सवाल यह है कि मुझे InvocationTargetException क्यों मिल रहा है।

धन्यवाद

उत्तर

15

आप अपने getSystemService() कॉल के बजाय getLayoutInflater() कोशिश कर सकते हैं, हालांकि मुझे यकीन है कि कोई फर्क नहीं कर रहा हूँ।

एक InvocationTargetException प्रतिबिंब से आता है, और इसका मतलब है Method जिसे Exception फेंक दिया गया था। क्या आप किसी अन्य स्टैक ट्रेस का कोई संकेत देखते हैं जो अंतर्निहित Exception हो सकता है? यदि नहीं, तो वास्तव में क्या चल रहा है यह देखने के लिए InvocationTargetException को पकड़ने और getCause() पर देखने का प्रयास करें।

+0

धन्यवाद करते हैं, मैं कोशिश करूँगा:

मैं द्वारा कि समस्या हल इसके कारण प्राप्त करने के लिए। –

8

मुझे भी यही समस्या थी।

अपनी कक्षा निर्माता में

private Context **context**; 

तब स्थानीय चर बनाएँ (जो तर्क संदर्भ संदर्भ है) इस

this.context=**context**; 

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

theview = li.inflate(R.layout.partofthescreen, somecontainer, false); 
+0

धन्यवाद, यह पूरी तरह से काम करता है लेकिन मुझे नहीं पता कि क्यों @@ – VAdaihiep

+1

ऐसा इसलिए है क्योंकि 'getContext()' का परिणाम कन्स्ट्रक्टर में पारित किए गए एक से अलग (लपेटा) संदर्भ हो सकता है – Takhion