【问题标题】:Service Causing Unexpected Close服务导致意外关闭
【发布时间】:2011-05-20 00:55:41
【问题描述】:

我正在创建一个游戏应用程序,我有一些针对不同屏幕的活动。我有一项服务,用于在整个活动中播放音乐。一个非常简单的服务,我有带有图像按钮的标题屏幕来打开和关闭它。现在我得到了一个意外的关闭和这个来自 eclipse 的错误消息:

[2011-05-19 19:50:04 - ddms]null
java.lang.NullPointerException
    at com.android.ddmlib.Client.sendAndConsume(Client.java:571)
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:670)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

编辑:服务代码

公共类 BGMusic 扩展服务 {
MediaPlayer 播放器;

@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onCreate() {
    super.onCreate();
    player = MediaPlayer.create(this, R.raw.still_wana);
}

public void onStart(Intent intent, int startId) {
    super.onCreate();
    player.start();
}

@Override
public void onDestroy() {
    super.onDestroy();
    player.stop();
}

}

编辑:控制台 Android 消息

在设备 emulator-5554 上启动活动 com.android.hitmanassault.HitmanTitle ActivityManager:DDM 调度注册等待超时 ActivityManager:无法调度 DDM 块 52454151:未定义处理程序 ActivityManager:开始:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.hitmanassault/.HitmanTitle }

【问题讨论】:

    标签: java android


    【解决方案1】:
    java.lang.NullPointerException
        at com.android.ddmlib.Client.sendAndConsume(Client.java:571)
    

    您在 Client.java 的第 571 行遇到了空指针问题。

    可能是由于传递了一个不能为null的参数为null。例如:

    R.raw.still_wana
    

    【讨论】:

    • 谢谢,在哪里可以找到该文件?
    • @Manji 我不知道。向我们展示您调用它的代码可能会让您有所收获。
    • 在问题帖子中我的意思是抱歉。
    • 我试过我也编辑了这个问题,以添加一些我在尝试重新编写代码后发现的更多信息,但我仍然收到相同的消息。非常感谢您的帮助
    • 我需要重新制作我的 xml 文件,该文件按住按钮来开始和停止音乐。
    【解决方案2】:

    你在onStart()中调用了错误的超级方法:

    public void onStart(Intent intent, int startId) {
        super.onCreate();
    

    应该是:

    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
    

    【讨论】:

    • 试过了,给我一个错误,当我修复错误时它仍然不起作用。
    • 错误是因为我在超级调用中遗漏了参数(现在已修复)?当你说它仍然不起作用你是什么意思?您是否遇到与您的问题相同的错误?
    • 是的,我试着用谷歌搜索我的问题,但我不能确定答案,所以我可能会重写整个事情。我修复了开始出现的超时错误。
    • 我需要重做我的 xml 文件,该文件是按住按钮来开始和停止音乐的。
    猜你喜欢
    • 2019-11-23
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多