小部件 - 无法实例化接收器

4

我知道有类似的问题被问过,但没有一个对我有帮助。如果能指向一个有解决方案的链接,我将非常高兴。不管怎样,每当我在我的Android模拟器上安装我正在开发的小部件时,都会出现错误。

错误信息如下:
ERROR/AndroidRuntime(866): java.lang.RuntimeException: Unable to instantiate receiver com.ifractal.firstwidget.FirstWidget: java.lang.NullPointerException

这里是相关代码:

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.ifractal.firstwidget"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <receiver android:name=".FirstWidget" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="android.appwidget.action.APPWIGET_ENABLE" />
        </intent-filter>
        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/provider"
        />
    </receiver>
</application>

以下是我在eclipse中的项目布局(以显示文件的位置)

我已尝试使用不同的名称重新创建项目、清理/构建等方法,但都没有奏效。如果需要,我很乐意提供更多信息。谢谢。

2个回答

1

清单文件看起来没问题。你在 FirstWidget 中得到了一个 NPE,所以你需要查看那个类。检查堆栈跟踪并查看异常抛出的确切位置。可能是构造函数吗?


好的,我已经解决了。问题出在我的Java文件中。我在onEnabled方法中设置了一种更新意图的方式,我猜这导致了崩溃。没想到错误出在Java文件中,谢谢! - Silvae

0

请检查您的应用程序小部件类是否不是抽象的。 以下是典型的应用程序小部件类声明:

public class AppWidget extends AppWidgetProvider{
    // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接