Android 具有服务中意图的方法导致小部件停止运行

Android 具有服务中意图的方法导致小部件停止运行,android,service,widget,Android,Service,Widget,我已经在一个小部件中创建了一个服务来处理onClick意图。但当添加到屏幕上时,它会强制关闭,我不明白为什么 这是导致其失败的方法: public void onClick() { RemoteViews top=new RemoteViews(context.getPackageName(), layoutID); RemoteViews bottom=new RemoteViews(context.getPackageName(), layoutID); In

我已经在一个小部件中创建了一个服务来处理onClick意图。但当添加到屏幕上时,它会强制关闭,我不明白为什么

这是导致其失败的方法:

    public void onClick() {
    RemoteViews top=new RemoteViews(context.getPackageName(), layoutID);
    RemoteViews bottom=new RemoteViews(context.getPackageName(), layoutID);
    Intent clickintenttop=new Intent("android.tristan.widget.digiclock.CLICK1");
    Intent clickintentbottom=new Intent("android.tristan.widget.digiclock.CLICK2");
    PendingIntent pendingIntentClickTop=PendingIntent.getBroadcast(context, 0, clickintenttop, 0);
    PendingIntent pendingIntentClickBottom=PendingIntent.getBroadcast(context, 0, clickintentbottom, 0);
    bottom.setOnClickPendingIntent(R.id.BottomRow, pendingIntentClickBottom);
    top.setOnClickPendingIntent(R.id.TopRow, pendingIntentClickTop);
    int Top = appWidgetIds.length;
    int Bottom = appWidgetIds.length;
    for (int i=0; i<Top; i++)
    {
    appWidgetManager.updateAppWidget(appWidgetIds[i], top);
    }
    for (int j=0; j<Bottom; j++)
    {
    appWidgetManager.updateAppWidget(appWidgetIds[j], bottom);
    }
}
正在从onCreate调用该方法。谁能把我推向正确的方向

编辑:取自LogCat:

W/dalvikvm22312:threadid=1:线程退出,未捕获异常组=0x400259f8

E/AndroidRuntime22312:致命异常:主

E/AndroidRuntime22312:java.lang.RuntimeException:无法创建服务android.tristan.widget.digiclock.IntentService:java.lang.NullPointerException

E/AndroidRuntime22312:at android.app.ActivityThread.handleCreateServiceActivityThread.java:3140

E/AndroidRuntime22312:android.app.ActivityThread.access$3300ActivityThread.java:135

E/AndroidRuntime22312:at android.app.ActivityThread$H.handleMessageActivityThread.java:2202

E/AndroidRuntime22312:at-android.os.Handler.dispatchMessageHandler.java:99

E/AndroidRuntime22312:at-android.os.Looper.Looper.java:144

E/AndroidRuntime22312:at android.app.ActivityThread.mainActivityThread.java:4937

E/AndroidRuntime22312:at java.lang.reflect.Method.Invokenactive Method

E/AndroidRuntime22312:at java.lang.reflect.Method.invokeMethod.java:521

E/AndroidRuntime22312:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:868

E/AndroidRuntime22312:com.android.internal.os.ZygoteInit.mainZygoteInit.java:626

E/AndroidRuntime22312:at dalvik.system.NativeStart.main本地方法

E/AndroidRuntime22312:原因:java.lang.NullPointerException

E/AndroidRuntime22312:at-android.tristan.widget.digiclock.IntentService.onClickIntentService.java:58

E/AndroidRuntime22312:at-android.tristan.widget.digiclock.IntentService.onCreateIntentService.java:40

E/AndroidRuntime22312:android.app.ActivityThread.handleCreateServiceActivityThread.java:3125

您的问题是上下文为空。在使用它之前,您需要将其分配给某个对象。或者,如果您在服务中,只需使用它,因为服务是一个上下文

然而,在尝试这样的事情之前,您似乎需要更好地掌握基本编程概念。阅读一些基本的Java教程,比如,或者查看本文中提到的一些书籍或资源


你还没有准备好对付Android。从基础做起,从基础做起。

请发布fc的完整堆栈跟踪。使用logcat:在eclipse中打开DDMS透视图,或在命令行上运行adb logcat。@tristan202空指针后是否不再有stacktrace?空指针指向哪一行代码?好吧,现在看来是onCreate出于某种原因导致了FC。我试图删除该调用并将其替换为toast,但它在没有显示toast的情况下崩溃。@Mayra我看不出它指向的是哪一行代码。如果我将整个项目压缩并上传到某个地方,那么让您查看整个项目的要求是否过高?这告诉您这是由IntentService第58行的空指针引起的,您正在尝试创建toast。附近发生了什么事?不,对不起,我没有时间帮你调试。这是一项重要的技能,学习如何阅读并采取行动。