Сообщение "_Problem Loading Widget" - PullRequest
       24

Сообщение "_Problem Loading Widget"

41 голосов
/ 10 февраля 2011

При загрузке виджета, если он не может найти ресурс или что-то, он говорит о проблеме загрузки виджета. Это все! Удивительно! Это сообщение остается на главном экране и даже не говорит, какой виджет у него возникли проблемы при загрузке.

Я понял это методом проб и ошибок, но я хотел бы знать, есть ли места, где можно найти сообщение об ошибке, когда это происходит. Где Android скажет, с какой проблемой он столкнулся при загрузке виджета или даже какой виджет не удалось загрузить?

Ответы [ 18 ]

113 голосов
/ 27 мая 2011

Проверьте элементы, которые вы использовали в представлении в виджете.

Ссылка на документацию

Объект RemoteViews (и, следовательно, виджет приложения) может поддерживать следующие классы макета:

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • GridLayout

И следующие классы виджетов:

  • AnalogClock
  • Кнопка
  • Хронометр
  • ImageButton
  • ImageView
  • ProgressBar
  • TextView
  • ViewFlipper
  • ListView
  • GridView
  • StackView
  • AdapterViewFlipper

Использование запрещенных элементов вызывает это самое

сообщение о проблеме с загрузкой

, не говоря, где это произошло.
25 голосов
/ 03 марта 2011

Как сказано в комментариях, проверьте logcat. То, что вы увидите, это исключение NullPointerException. У меня было это раньше тоже.

9 голосов
/ 17 мая 2015

Еще одна возможная причина этого:

Я видел это в журнале:

Не удалось разрешить атрибут

Проблема заключалась в том, что япытался использовать цвет из текущей темы в качестве фона для одного из моих макетов.

например,

android:background="?themeColor"

Изменение этого цвета на определенный решило проблему.

android:background="@color/White"
4 голосов
/ 26 августа 2014

Проблема Загрузка виджета является результатом проблемы / проблем в макете вашего виджета!

Существует только ограниченный объем ресурсов, которые вы можете использовать в виджете. Убедитесь, что вы используете правильные элементы и их поля.

Объект RemoteViews (и, следовательно, виджет приложения) может поддерживать следующие ... классы виджетов:

AnalogClock
Button
...

Документы для разработчиков

Моя проблема заключалась в том, что у меня было поле этой кнопки, которое не поддерживалось

android:onClick="onClick" 

Удаление этого параметра позволило виджету отображаться там, где он был помещен (если был помещен ранее), и в меню доступных виджетов.

Фактическая установка android:onClick= для любого View приводит к этой ошибке.

3 голосов
/ 19 марта 2017

В основном виджеты поглощают исключения. Просто установите соответствующий фильтр в вашем logcat, и вы сможете увидеть, в чем проблема ...

enter image description here

Выше я просто ищу слово " Widget " и не устанавливаю фильтр для какого-либо конкретного приложения. По сути, это дает мне Throwable.getMessage() без полной трассировки стека.

3 голосов
/ 26 сентября 2016

Объект RemoteViews (и, следовательно, виджет приложения) может поддерживать следующие классы макета:

FrameLayout
LinearLayout
RelativeLayout
GridLayout

И следующие классы виджетов:

AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper

Любое использование, отличное от указанного выше, вызывает так называемый «виджет загрузки проблем».

Кроме того, проверьте журналы (без фильтра), чтобы увидеть точную строку этой проблемы.

3 голосов
/ 07 марта 2014

Я тоже сталкиваюсь с этой проблемой, но только из-за тяжелой разметки виджетов.Макет виджета должен быть настолько легким, насколько вы можете создать.Теперь мой виджет работает отлично.

3 голосов
/ 02 сентября 2011

Конечно, есть сценарий использования, когда на домашней странице загружался виджет, а затем пользователь удаляет приложение, содержащее приложение настройки виджетов и виджетов.

Когда это происходит, все, что вы видитеэто «Виджет загрузки проблем» в тостоподобном окне на домашнем экране.Насколько я могу судить, виджет не получает указаний на то, что пакет удаляется, и я думаю, что на главном экране AppWidgetManager выдает сообщение по умолчанию.

Не совсем продуманное поведение со стороны команды ОС,Я полагаю, что было бы лучше вызвать методы виджета onDisbled () и onDestroy () перед удалением пакета, чтобы они могли привести в порядок, если необходимо, и пользователь (не пользователь телефона) получает чистый опыт.

2 голосов
/ 17 октября 2012

Это может быть вызвано Moving of the specific (Widget) Application from Internal Memory to SD card. ( Android - Исправление ошибки «Ошибка загрузки виджета» )

1 голос
/ 18 сентября 2013

Только что исправили еще один вариант этой ошибки, не упомянутый в других ответах.

Симптомы были: 1) Ошибка «Загрузка виджета» в Gingerbread и ниже 2) Точно такая же сборка работала нормально на ICS и Jellybean 3) Нет ошибок в logcat

Проблема была вызвана манипулированием видом, который никогда не был раздут в удаленных видах. В частности:

remoteviews.setViewVisibility(viewId, View.GONE);

Где viewId был допустимым ресурсом, но он был в макете, который никогда не добавлялся в удаленные представления. Ошибки не выдавались, и виджет отображал «Проблема загрузки виджета» после вызова .updateAppWidget ()

...