【问题标题】:ICS crashes when intent.getExtras() is called调用 intent.getExtras() 时 ICS 崩溃
【发布时间】:2023-03-25 12:52:01
【问题描述】:

这只发生在一些 ICS 设备上。

我的应用所做的基本上是等待广播,然后启动一个有意图的服务。

intent 附加了一个捆绑包,将使用

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

但是,在导致此堆栈跟踪的某些 ICS 设备上:

java.lang.RuntimeException: Unable to start service de.bulling.smstalk.Services.TTS@418218f8 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()

谢谢!

【问题讨论】:

  • 您是否在调试中检查过意图变量不为空?我不知道为什么会这样,但也许这是导致问题的原因。
  • 嗯,这似乎是这里的问题(否则我不会有那个讨厌的例外)。但是服务不会自行启动(或者它是否在 ICS 上重新启动?),它只是从接收器启动。但是,我无法在 anICS 模拟器上重现此问题。

标签: android exception crash android-intent android-service


【解决方案1】:

貌似onStart可能是deprecated,你试过方法了吗

@Override

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

【讨论】:

  • 该死!我不知道 onStart 已被弃用!非常感谢!
  • 我很高兴,活动的 onStart() 仍在使用中,所以可能会有点混乱:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 2016-02-11
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多