Java &引用_“加载小部件时出现问题”;消息

Java &引用_“加载小部件时出现问题”;消息,java,android,android-layout,android-widget,loading,Java,Android,Android Layout,Android Widget,Loading,加载小部件时,如果找不到资源或其他内容,则表示加载小部件时出现问题。这就是全部!太神了此消息保留在主屏幕上,甚至没有说明加载哪个小部件有问题 我通过反复试验找到了答案,但我想知道当这种情况发生时,是否有任何地方可以找到错误消息。Android会在哪里说明加载小部件时出现了什么问题,或者哪一个小部件加载失败?如评论中所述,请查看logcat。您将看到一个NullPointerException。我以前也有过这种情况。检查小部件视图中使用的元素 RemoteView对象(以及相应的应用程序小部件)

加载小部件时,如果找不到资源或其他内容,则表示加载小部件时出现问题。这就是全部!太神了此消息保留在主屏幕上,甚至没有说明加载哪个小部件有问题


我通过反复试验找到了答案,但我想知道当这种情况发生时,是否有任何地方可以找到错误消息。Android会在哪里说明加载小部件时出现了什么问题,或者哪一个小部件加载失败?

如评论中所述,请查看logcat。您将看到一个NullPointerException。我以前也有过这种情况。

检查小部件视图中使用的元素

RemoteView对象(以及相应的应用程序小部件)可以支持以下布局类:

AnalogClock
Button
...
FrameLayout
LinearLayout
RelativeLayout
GridLayout
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper
  • 框架布局
  • 线性布局
  • 相对论
  • 网格布局
以及以下小部件类:

AnalogClock
Button
...
FrameLayout
LinearLayout
RelativeLayout
GridLayout
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper
  • 模拟时钟
  • 钮扣
  • 天文钟
  • 图像按钮
  • 图像视图
  • 进度条
  • 文本视图
  • 视窗翻转器
  • 列表视图
  • 网格视图
  • 斯塔克维尤
  • 适配器交换机

使用禁止元素会导致加载小部件消息时出现问题,但不会说明它发生在何处。

当然,在这种情况下,主页上加载了一个小部件,然后用户卸载包含小部件和小部件配置应用程序的应用程序

当这种情况发生时,您所看到的就是主屏幕上类似于toast的框中的“问题加载小部件”。据我所知,小部件没有收到卸载包的指示,我猜主屏幕AppWidgetManager会显示一条默认消息


操作系统团队考虑不周的行为。我建议最好在移除包之前调用小部件的onDisbled()和onDestroy()方法,这样它们可以在需要时进行整理,用户(非极客电话用户)可以获得干净的体验。

我遇到这个问题,因为我试图使用复选框

因此,只需删除复选框即可


它可以正常工作。

这可能是由于
将特定(小部件)应用程序从内存移动到SD卡造成的。

刚刚修复了其他答案中未提及的此错误的另一个变体

病征包括: 1) 姜饼及以下版本上的“加载小部件问题”错误 2) 完全相同的构建在ICS和Jellybean上运行良好 3) logcat中没有错误

该问题是由操纵远程视图中从未膨胀过的视图引起的。具体而言:

remoteviews.setViewVisibility(viewId,View.GONE)


其中viewId是有效的资源,但它位于从未添加到远程视图的布局中。没有引发任何错误,在调用.updateAppWidget()后,小部件显示“加载小部件时出现问题”

我也有同样的问题,但logcat没有显示任何可疑的内容,既没有错误也没有警告。基本上,我调用了一个错误的方法来更改textview的颜色。

我也面临这个问题,但这仅仅是由于沉重的小部件布局。小部件的布局应该尽可能地轻。现在,我的小部件工作正常。

加载小部件的问题源于小部件布局中的问题

小部件中只能使用有限的资源。请确保使用正确的元素及其字段

RemoteViews对象(以及相应的应用程序小部件)可以支持以下功能。。。小部件类:

AnalogClock
Button
...
FrameLayout
LinearLayout
RelativeLayout
GridLayout
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper

我的问题是:这个按钮的字段不受支持

android:onClick="onClick" 
删除此选项可以使小部件显示在放置的位置(如果以前放置过)和可用小部件的菜单中


事实上,为任何
视图设置
android:onClick=
会导致此错误。

另一个可能的原因是:

我在日志中看到:

无法解析属性

问题是,我试图使用当前主题的颜色作为我的一个版面的背景

e、 g

将其更改为特定颜色解决了问题

android:background="@color/White"
RemoteView对象(以及相应的应用程序小部件)可以支持以下布局类:

AnalogClock
Button
...
FrameLayout
LinearLayout
RelativeLayout
GridLayout
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper
以及以下小部件类:

AnalogClock
Button
...
FrameLayout
LinearLayout
RelativeLayout
GridLayout
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper
任何使用上述以外的东西都会导致这种所谓的“问题加载小部件”


此外,请检查日志(不带任何筛选器)以查看此问题的确切行。

我也遇到了同样的问题。问题解决:我在小部件中使用了自定义视图。在我的情况下,它是带有自定义字体的文本视图。

在我的情况下,我有一个浮动的
文本视图
。解决方案是删除它,并考虑使用不重叠的现有视图以不同的方式向用户显示我的信息


因此,不要将视图与
RelativeLayout重叠,我仍然使用它,并且它可以工作,但是视图不会尽可能多地重叠。

基本上是例外。只需在logcat中设置一个适当的过滤器,您就可以看到问题所在


在上面,我只是在搜索单词“Widget”,并且在任何特定的应用程序上都没有设置过滤器。它本质上给了我Throwable.getMessage()
,没有完整的堆栈跟踪。

只是为了记录。我有一个框架布局,里面有一个文本视图,所有内容都在一个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="64dp"

在我的例子中,错误是由更改的提供程序类名引起的。因此,如果您更改了小部件提供程序类的名称,请尝试将其更改回原来的名称。此外,如果您更改了xml文件的名称(例如,
widget\u info.xml
widget\u layout.xml
),您可能还需要更改这些文件的名称


只有当用户更新的应用程序和“旧”小部件当前可见时,才会发生这种情况。

我也遇到了同样的问题-