InvocationTargetException при расширении xml - андроид

У меня есть код, который работает, 99% времени с тех пор, развертываются в большом количестве клиентов, но иногда я получаю следующее:

java.lang.reflect. InvocationTargetException android.widget. LinearLayout. (LinearLayout.java:92) java.lang.reflect. Constructor.constructNative (Собственный метод) java.lang.reflect. Constructor.newInstance (Конструктор 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 = (LayoutInflater) этот .getSystemService (Контекст. LAYOUT_INFLATER_SERVICE);
theview = li.inflate (R.layout.partofthescreen, somecontainer, ложь);

таким образом, вопрос состоит в том, почему я получаю InvocationTargetException.

Спасибо

10
задан Daniel Benedykt 10 March 2010 в 13:53
поделиться

2 ответа

Вы можете попробовать getLayoutInflater() вместо вызова getSystemService(), хотя я не уверен, что это что-то изменит.

Исключение InvocationTargetException возникает из-за рефлексии и означает, что вызванный метод бросил исключение. Видите ли вы какие-либо признаки другого стекового следа, который может быть лежащим в основе Исключением? Если нет, попробуйте поймать InvocationTargetException и посмотреть на getCause(), чтобы понять, что на самом деле происходит.

17
ответ дан 3 December 2019 в 16:09
поделиться

У меня тоже была такая же проблема.

Я решил эту проблему следующим образом:

Сделайте локальную переменную

private Context **context**;

Затем в конструкторе вашего класса (который имеет контекст контекста аргумента) сделайте это

this.context=**context**;

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

theview = li.inflate(R.layout.partofthescreen, somecontainer, false);
9
ответ дан 3 December 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: