2011-12-28 58 views
1

这仅发生在某些 ICS设备上。当intent.getExtras()被调用时,ICS崩溃

我的应用程序正在做什么基本上是等待广播,然后以意向启动服务。

意图具有附接束,将与

@Override 
public void onStart(Intent intent, int startId) { 
    sets = new SettingsClass(this); 
    Bundle extras = intent.getExtras(); 

被读出。然而,在某些ICS设备导致此堆栈跟踪:

java.lang.RuntimeException: Unable to start service [email protected] with null: java.lang.NullPointerException 
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2375) 
at android.app.ActivityThread.access$1900(ActivityThread.java:122) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4340) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
at de.bulling.smstalk.Services.TTS.onStart(TTS.java:48) 
at android.app.Service.onStartCommand(Service.java:438) 
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2358) 
... 10 more 
java.lang.NullPointerException 
at de.bulling.smstalk.Services.TTS.onStart(TTS.java:48) 
at android.app.Service.onStartCommand(Service.java:438) 
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2358) 
at android.app.ActivityThread.access$1900(ActivityThread.java:122) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4340) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 

所提到的管线48 阅读附加内容的行。另外一个我曾经这样称呼的服务发出了同样的例外情况。

所以现在的问题:我该如何解决这个问题?是否有另一种启动服务并传递数据的方法,或者我在错误的地方调用getExtras()

谢谢!

+0

你在调试的目的变量不为null检查方法?我不知道为什么会这样,但也许是造成这些问题。 – MikeIsrael 2011-12-28 10:08:52

+0

那么,这似乎是这里的问题(否则我不会有那个讨厌的例外)。但是服务不会自动启动(或者它可能在ICS上重新启动?),它只能从接收器启动。 但是,我无法在anics仿真器上重现此问题。 – Force 2011-12-28 10:13:11

回答

2

它看起来像在onStart可能deprecated,你有没有试过

@Override 

public int onStartCommand(Intent intent, int flags, int startId) 
+0

DAMN!我不知道onStart已被弃用!非常感谢! – Force 2011-12-28 10:55:57

+1

我的荣幸,也是onStart()对于活动的使用还是非常多的,所以可能会有点混乱:) – MikeIsrael 2011-12-28 11:03:29

相关问题