سؤال

لدي رمز يعمل 99٪ من الوقت ينشر منذ الكثير من العملاء، ولكن في بعض الأحيان أحصل على ما يلي:

java.lang.reflect.invocationtargetexception android.widget.linearlayout. (linearlayout.java:92) java.lang.reflect.constressor.construction (الطريقة الأصلية) java.lang.reflect.constressor.newinstance (brandor.java:446) Android .view.layoutinflater.createview (layoutinflater.java:499) com.android.internal.policy.impl.phonelayoutinflater.oncreateview (phonelayoutinflater.java:56) android.view.layoutinflater.createvieffromtag (layoutinflater.java:562) android.view .layoutinflater.rinflater (layoutinflater.java:617) android.view.layoutinflater.inflate (layoutinflater.java:407) android.view.layoutinflater.inflate (layoutinflater.java:320) com.mycode.mycode.mycleass.draw (xxxxxxx ) .....

وعلى التعليمات البرمجية لدي:

layoutinflater li = (layoutinflater) هذا .getsystemService (context.layout_inflater_service)؛
theview = li.inflate (r.layout.partofthescreen، somecontainer، false)؛

لذلك السؤال هو السبب في أنني أحصل على الاحتجاز.

شكرًا

هل كانت مفيدة؟

المحلول

يمكنك المحاولة 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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top