我是 Flutter 的初学者,我正在尝试在 Flutter 项目中创建自定义 Android 小部件。当我尝试选择小部件时,遇到错误“java.lang.RuntimeException:无法实例化接收器 com.example.flutter_ure.ClockWidget”。这是我已经检查并完成的内容:
我创建了一个扩展AppWidgetProvider的类ClockWidget。 我在我的 AndroidManifest.xml 文件中定义了接收器,如下所示:
<receiver
android:name="com.example.flutter_ure.ClockWidget"
android:label="Clock"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_clock" />
</receiver>
我已确保我的 AndroidManifest.xml 中指定的包与我的 Flutter 项目中的包匹配。 但是,错误仍然存在,并且我无法使我的自定义小部件正常工作。我究竟做错了什么?我该如何解决这个问题?
如果您能提供任何帮助或建议来解决此错误,我将不胜感激。预先感谢您。
根据文档,接收者的名称应该是您的小部件类的名称,而不是该类的包。
例如,
<receiver android:name="ExampleAppWidgetProvider"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info" />
</receiver>
所以,在你的情况下,它看起来像这样:
<receiver
android:name="ClockWidget"
android:label="Clock"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_clock" />
</receiver>