0

可能重复:
Android RuntimeException: Unable to instantiate the serviceIntentService的RuntimeException

问题:在开始IntentService产生RuntimeException

我很无能。如果您需要更多信息,请询问。登录:

D/dalvikvm(6839): newInstance failed: no <init>() 
D/AndroidRuntime(6839): Shutting down VM 
W/dalvikvm(6839): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
E/AndroidRuntime(6839): FATAL EXCEPTION: main 
E/AndroidRuntime(6839): java.lang.RuntimeException: Unable to instantiate service org.xyz.android.service.MyService: java.lang.InstantiationException: org.xyz.android.service.MyService 
E/AndroidRuntime(6839): at android.app.ActivityThread.handleCreateService(ActivityThread.java:1929) 
E/AndroidRuntime(6839): at android.app.ActivityThread.access$2500(ActivityThread.java:117) 
E/AndroidRuntime(6839): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985) 
E/AndroidRuntime(6839): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(6839): at android.os.Looper.loop(Looper.java:130) 
E/AndroidRuntime(6839): at android.app.ActivityThread.main(ActivityThread.java:3683) 
E/AndroidRuntime(6839): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(6839): at java.lang.reflect.Method.invoke(Method.java:507) 
E/AndroidRuntime(6839): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
E/AndroidRuntime(6839): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
E/AndroidRuntime(6839): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(6839): Caused by: java.lang.InstantiationException: org.xyz.android.service.MyService 
E/AndroidRuntime(6839): at java.lang.Class.newInstanceImpl(Native Method) 
E/AndroidRuntime(6839): at java.lang.Class.newInstance(Class.java:1409) 
E/AndroidRuntime(6839): at android.app.ActivityThread.handleCreateService(ActivityThread.java:1926) 
E/AndroidRuntime(6839): ... 10 more 

此代码调用服务(它被从ContentProvider叫):

Intent i = new Intent(
     getContext(), 
     MyService.class); 
    i.putStringArrayListExtra(EXTRA_MISSING, missingMonths); 
    i.putExtra(EXTRA_URI, uri); 
    i.putExtra(EXTRA_START, startTime); 
    i.putExtra(EXTRA_END, endTime); 
    getContext().startService(i); 

这是IntentService相关的代码块(只有两个方法,除了的AsyncTask本身,当然):

public MyService(String name) { 
    super("MyService"); 
} 

@Override 
protected void onHandleIntent(Intent intent) { 
     // ... do stuff 
     new DownloaderTask().execute(missingMonths); 
} 
+0

您是否在清单中描述过它? – logcat 2011-12-15 15:57:25

+0

@rds我同意。 :-) – davidcesarino 2013-01-11 16:00:44

回答

7

您似乎缺少零参数公共构造函数。从当前的构造函数中删除String name(因为您还没有使用它),您应该很好。