开发完成后,Android小部件不在列表中

我使用小部件升级我的应用程序。 这不是我做的第一个小工具。 我总是遇到一些奇怪的问题,但是最终这个小部件在名单上一晃而过。

这是我迄今为止所做的:

  • 创build了widget_layout.xml
  • 创build了widget_info.xml
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="110dp" android:minHeight="30dp" android:updatePeriodMillis="86400000" android:initialLayout="@layout/widget_layout" android:resizeMode="none"> </appwidget-provider> 
  • 创build了WidgetProvider类
  • <application>部分添加了要显示的小部件(出于某种原因,不能在这里粘贴清单片段,它只是不显示,请参阅此处的代码)

但是,在小部件列表上找不到小部件。 我正在真实设备上debugging应用程序。 我正在使用库项目,但小部件文件,但所有在我直接运行的项目。 这里会发生什么?

Solutions Collecting From Web of "开发完成后,Android小部件不在列表中"

跑遍了类似的问题,这就是发生在我身上的事情。 下面的Widget从未出现在Widget抽屉中,直到添加了minResizeHeight。 奇怪,但可能是可resize的小部件所必需的。 本来可以更友善些。

 <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/pmt_schedule_scroll_widget" android:minHeight="146dip" android:minResizeHeight="73dp" android:minWidth="146dip" android:resizeMode="vertical" android:updatePeriodMillis="0" /> 

这种问题可能发生在两种情况下。 两者都在上面回答,这是一个完整的答案,我已经面临两种情况,并解决了他们两个。

Scenario1

如果应用程序在清单中指定了android:installLocation =“preferExternal”参数,则应用程序将安装在外部存储器中,并且不会显示在窗口小部件列表中。 另外,如果你已经让你的手机安装在SD卡上的所有应用程序,这也会发生。

进入设置 – > Apps-> YourApp然后“移动到手机”。 这将移动应用程序到您的手机内存,现在你可以看到你的部件列表中的小部件

Scenario2

如果上述修复程序没有解决您的问题,那么你可能有一个Android 4.XX版本的设备。

那么你必须至less在widget_info.xml文件中设置下面的参数

溶液2

android:minHeight =“XXXdp”android:minWidth =“XXXdp”

问题是android:installLocation="preferExternal"

如果应用程序安装在SD上,它会以某种方式导致部件列表出现问题

您需要在清单文件中注册BroadcastReceiver。 例如:

 <receiver android:icon="@drawable/icon" android:label="Example Widget" android:name="MyWidgetProvider" > <intent-filter > <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_info" /> </receiver> 

我从http://www.vogella.com/articles/AndroidWidgets/article.html借了这段代&#x7801;

查看完整教程的链接

我尝试了所有可能的解决scheme,没有为我工作…最后我解决了它。

在我的情况下,问题是overshinking:我相信,在元数据标签中,我们需要为提供者定义一个唯一的名称(例如:“com.example.myprovider”)以及链接到xml资源。

错误:

 <meta-data android:name="com.example.myprovider" android:resource="@xml/widget_info" /> 

对:

 <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_info" /> 

经过几个小时的search和解决,我决定打开一个小工具的示例项目,并逐项比较,看看有什么错,最后,我解决了在我的res / xml / widget_info .XML:

 android:minHeight="XXXdp" android:minResizeHeight="XXXdp" android:minResizeWidth="XXXdp" android:minWidth="XXXdp" 

其中XXX是一些价值。