Flutter 项目中自定义 Android 小部件的类未找到错误

问题描述 投票:0回答:1

我是 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 项目中的包匹配。 但是,错误仍然存在,并且我无法使我的自定义小部件正常工作。我究竟做错了什么?我该如何解决这个问题?

如果您能提供任何帮助或建议来解决此错误,我将不胜感激。预先感谢您。

android flutter widget receiver
1个回答
0
投票

根据文档接收者的名称应该是您的小部件类的名称,而不是该类的包

例如,

<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>
© www.soinside.com 2019 - 2024. All rights reserved.