У меня есть код, который работает, 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.
Спасибо
Вы можете попробовать getLayoutInflater()
вместо вызова getSystemService()
, хотя я не уверен, что это что-то изменит.
Исключение InvocationTargetException
возникает из-за рефлексии и означает, что вызванный метод
бросил исключение
. Видите ли вы какие-либо признаки другого стекового следа, который может быть лежащим в основе Исключением
? Если нет, попробуйте поймать 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);