Flutter实现桌面部件时AndroidManifest找不到@xml资源如何解决
报错原因
该错误是Android构建系统无法找到你在AndroidManifest.xml中引用的桌面部件配置文件widget_info.xml,这是实现Android桌面部件的必需配置项,需要手动创建。
解决步骤
1. 创建xml资源目录
进入Flutter项目对应的Android资源目录:android/app/src/main/res/,检查该目录下是否存在xml文件夹,若不存在则手动新建。
2. 新增widget_info.xml配置文件
在刚创建的xml文件夹下新建名为widget_info.xml的文件,粘贴以下基础配置,可根据实际需求调整参数:
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="40dp" android:minHeight="40dp" android:updatePeriodMillis="86400000" android:initialLayout="@layout/widget_layout" android:resizeMode="horizontal|vertical" android:widgetCategory="home_screen"> </appwidget-provider>
核心参数说明:
minWidth/minHeight:桌面部件的默认最小宽高updatePeriodMillis:部件自动更新的时间间隔,单位为毫秒,系统限制最小间隔为30分钟initialLayout:部件使用的布局文件引用,后续需要对应创建该布局文件resizeMode:部件支持的缩放方向widgetCategory:指定部件可展示在主屏幕
3. 补充部件布局文件
进入android/app/src/main/res/目录,检查是否存在layout文件夹,不存在则新建。在layout文件夹下创建widget_layout.xml文件,编写部件的界面布局,示例如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello Flutter Widget" android:textColor="#000000" android:textSize="16sp"/> </LinearLayout>
4. 重新构建项目
执行flutter clean清理项目缓存后,重新运行项目即可解决该资源找不到的报错。
内容的提问来源于stack exchange,提问作者Geralt von Riva
相关产品推荐
相关产品推荐

