2013-04-22 40 views
0

当这个代码运行时,它给了我一个例外的RuntimeException。我还没有向WakeWork.class添加任何代码。任何想法为什么这是轰炸?调用WakefulIntentService.sendWakefulWork引起的RuntimeException

这就是所谓的从我的“接收器上”报警。

Intent i = new Intent(context, WakeWork.class); 
    WakefulIntentService.sendWakefulWork(context, i); 

的manifest.xml
<service android:name="com.PageP.WakeWork"></service>

WAKEWORK.CLASS

package com.PageP; 

import android.content.Intent; 

public class WakeWork extends WakefulIntentService { 

public WakeWork(String name) { 
    super(name); 
    // TODO Auto-generated constructor stub 
} 

@Override 
public void onCreate(){ 
    super.onCreate(); 
} 

@Override 
protected void doWakefulWork(Intent intent) { 
    // TODO Auto-generated method stub 

} 
} 

ERROR

Thread [<1> main] (Suspended (exception RuntimeException)) 
     ActivityThread.handleCreateService(ActivityThread$CreateServiceData) line: 2346 
     ActivityThread.access$1600(ActivityThread, ActivityThread$CreateServiceData) line: 126 
     ActivityThread$H.handleMessage(Message) line: 1221 
     ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
     Looper.loop() line: 137 
     ActivityThread.main(String[]) line: 4560  
     Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
     Method.invoke(Object, Object...) line: 511 
     ZygoteInit$MethodAndArgsCaller.run() line: 784 
     ZygoteInit.main(String[]) line: 551 
     NativeStart.main(String[]) line: not available [native method] 

LONGCAT

10月4日至22日:32:04.127:W /的AsyncTask(9004):com.PageP.GrabURL.doInBackground(GrabURL.java:36) 10月4日至22日:32:04.127:W /的AsyncTask(9004):在玉米.PageP.GrabURL.doInBackground(GrabURL.java:1) 10月4日至22日:32:19.080:E/AndroidRuntime(9004):了java.lang.RuntimeException:无法实例服务com.PageP.WakeWork:java.lang中。 InstantiationException:无法实例化类com.PageP.WakeWork;没有空的构造 10月4日至22日:32:19.080:E/AndroidRuntime(9004):java.lang.InstantiationException:致不能实例类com.PageP.WakeWork;没有空的构造

+0

请发布整个堆栈跟踪。 – CommonsWare 2013-04-22 14:08:04

+0

我是新来的日食。我如何到达它,我可以复制/粘贴它。 – iBoston 2013-04-22 14:17:30

+0

我相信我贴吧.... – iBoston 2013-04-22 14:24:53

回答

0

变化:

public WakeWork(String name) { 
    super(name); 
    // TODO Auto-generated constructor stub 
} 

到:

public WakeWork() { 
    super("George"); 
} 

(随意在姓名其他值来代替)

由于堆栈跟踪显示你的Android无法实例化您的服务,因为没有零参数公共构造函数,这是上述修复程序解决的问题。

+0

谢谢!这是我的第一个android应用程序,学习android的细微差别被证明是具有挑战性的... – iBoston 2013-04-22 15:03:30

+0

@ user2250168:IntentService(和扩展名为WakefulIntentService)与大多数Android组件不同。通常,我们*不*实现构造函数并继承合适的零参数公共构造函数。无论出于何种原因,IntentService的作者都要求我们跳过这个定义我们自己的公共零参数构造函数的圈套。 – CommonsWare 2013-04-22 15:06:01

+0

您在doWakefulWork中是否允许显示活动? – iBoston 2013-04-22 15:27:48