Android 小部件未在屏幕上显示
Posted
技术标签:
【中文标题】Android 小部件未在屏幕上显示【英文标题】:Android widgets not showing on screen 【发布时间】:2021-10-30 04:17:33 【问题描述】:我正在尝试制作一个简单的widget
,但是当我想把它放在屏幕上时它就消失了。
我在 Api 上试过这个:23,26 和 30,结果都是一样的。
Manifest.xml
<receiver android:name=".mAppWidgetProvider">
<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>
widget_info.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.app24.test.mAppWidgetProvider"
android:initialLayout="@layout/my_widget"
android:minWidth="250dp"
android:minHeight="70dp"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="10000"
android:widgetCategory="home_screen">
</appwidget-provider>
mAppWidgetProvider
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
public class mAppWidgetProvider extends AppWidgetProvider
my_widget(布局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="horizontal"
android:background="@color/white"
android:padding="8dp">
<TextView
android:text="Hello world"
android:textSize="24sp"
android:layout_weight="1"
android:gravity="center"
android:layout_
android:layout_/>
<Button
android:text="Click me!"
android:layout_weight="1"
android:layout_
android:layout_/>
<Button
android:text="Click me!"
android:layout_weight="1"
android:layout_
android:layout_/>
</LinearLayout>
我已经尝试了其他解决方案,但没有任何结果。
【问题讨论】:
【参考方案1】:查看 logcat 并查找一些 Exception
。应用程序小部件在没有任何对话框的情况下“无声地”崩溃,只是没有出现。但是您应该能够在日志中找到问题的原因
在您的代码中,我看到一行错误:
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
...
android:configure="com.app24.test.mAppWidgetProvider"
...
android:configure
should point on some Activity
,它将在您的小部件添加到主屏幕时启动。您的行错误地指向您的自定义AppWidgetProvider
,这不是Acticity
- 系统可能会尝试以Activity
启动此类,或者可能会检查instanceof
,并且由于此类不是Activity
,因此会发生崩溃.尝试删除此行以开始(或指向正确的类)
【讨论】:
我删除了那条线,终于成功了!,非常感谢...以上是关于Android 小部件未在屏幕上显示的主要内容,如果未能解决你的问题,请参考以下文章