Сообщение "проблема загрузки виджета"

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

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

18 ответов


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


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

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

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

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • GridLayout

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

  • AnalogClock
  • секундомер
  • ImageButton
  • ImageView
  • ProgressBar
  • TextView
  • ViewFlipper
  • ListView с
  • GridView
  • StackView
  • AdapterViewFlipper

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

Проблема Загрузки Виджета

сообщение, не говоря где это произошло?

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

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

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

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

Эл.г

android:background="?themeColor"

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

android:background="@color/White"

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

когда это происходит, все, что вы видите, это "проблема загрузки виджета" в тосте, как поле на главном экране. Насколько я могу судить, виджет получает не indicatation, что пакет удаляется и думаю тогда дома систем экран thows сообщение по умолчанию.

Не хорошо продуманное поведение со стороны команды OS. Я предлагаю, что было бы лучше вызвать методы ondisbled() и onDestroy() виджета, прежде чем пакет будет удален, чтобы они могли убирать, если это необходимо, и пользователь (не-geek phone user) получает чистый опыт.


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


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

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

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

AnalogClock
Button
...

разработчик документов

моя проблема была: у меня было поле этой кнопки, которое не было поддерживается

android:onClick="onClick" 

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

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


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

FrameLayout
LinearLayout
RelativeLayout
GridLayout

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

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

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

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


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


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

Так,Просто remove checkbox.

он будет работать нормально.


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

симптомы были: 1) ошибка "проблема загрузки виджета" на Gingerbread и ниже 2) точно такая же сборка отлично работала на ICS и Jellybean 3) нет ошибок в logcat

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

remoteviews.setViewVisibility(viewId, View.GONE);

где viewId был допустимым ресурсом, но он был в макете, который никогда не был добавлен к удаленным представлениям. Никаких ошибок не было, и виджет отображается "проблема загрузки виджета" после вызова .updateAppWidget()


У меня была та же проблема, но logcat не показал ничего подозрительного, ни ошибки, ни предупреждения. В принципе, я вызывал неправильный метод для изменения цвета textview текст.


У меня такая же проблема, когда я удаляю приложение note, я пытаюсь коснуться и удерживать сообщение, и оно показывает меню "Удалить", я выбираю "удалить", чем он исчезает.


У меня была та же проблема. Проблема решена: я использовал пользовательский вид в виджете. В моей ситуации это был TextView с пользовательским шрифтом.


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

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


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

enter image description here

выше, я просто ищу слово"виджет " и не устанавливать никакой фильтр на любом специфическом применении. Это, по существу, дает мне Throwable.getMessage() без полной трассировки стека.


просто для протокола. У меня есть FrameLayout с TextView внутри, все содержимое в LinerLayout, это будет заголовок моего виджета. Первоначально у меня было это

<LinearLayout
[...] 

<FrameLayout
    android:id="@+id/widget"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/app_name"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:textColor="@android:color/white"/>
</FrameLayout>

[...] 
</LinearLayout>

как и все здесь, у меня было сообщение "проблема загрузки виджета". Решением было изменить это

    android:layout_height="?attr/actionBarSize"

для этого:

    android:layout_height="64dp"

в моем случае ошибка была вызвана измененным именем класса поставщика. Поэтому, если вы изменили имя класса поставщика виджетов, попробуйте изменить его обратно. Кроме того, если вы изменили имена xml-файлов (например. widget_info.xml, widget_layout.xml), вы также можете изменить их обратно.

это произошло только тогда, когда пользователь обновил приложение и "старый" виджет был виден.


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

Я был с помощью android.поддержка.ограничение.ConstraintLayout вот почему он говорил "проблема загрузки виджета" после удаления этого и меняется к LinearLayout проблема решена, как @Гангнус слова, он будет работать только для конкретных видов.