我的应用程序崩溃没有log cat异常或任何错误信息?

时间:2017-10-14 08:38:38

标签: android android-service

我的应用程序在返回START_STICKY后立即崩溃。

我的应用程序中有一个前台服务:

public class MyService extends Service {

@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (intent != null) {
            if (intent.getAction().equals(STARTFOREGROUND_ACTION)) {
                // Code to create/update notification and start processing goes here
            } else if (intent.getAction().equals(ANOTHER_ACTION)) {             
                // Code to create/update notification and do another processing
            } else if (null != intent && intent.getAction().equals(STOPFOREGROUND_ACTION)) {
            stopForeground(true);
            stopSelf();
        }
        }   

        return START_STICKY; // Last reference point in debugger after which application crashes 
    }

    }

我试过调试最后一点调试就是返回START_STICKY;特别是STOPFOREGROUND_ACTION信号,然后崩溃。

没有错误,应用程序日志中显示警告无法弄清楚可能出现的问题。

我可以做些什么来解决这个问题是我停止前台服务的方式是错误的,我还能做些什么来获得更多特定应用的日志。

我已经检查了我的代码到处都是我捕获异常并将其记录如下:

try {
           // Code expected to throw error or exception
        } catch (Exception e) {
            Log.e(TAG, Log.getStackTraceString(e));
        }

在我绕过异常的应用程序中没有地方可以缓存并记录到处。

我在禁用所有过滤器并在log cat上选择详细选项时看到的一些错误:

1] `A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x10 in tid 32152 (Thread-1910)`

2] com.my.test.MyActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9

3] [Application Error: com.my.test](this:0xb28d3c00,id:809,api:1,p:933,c:252) new GraphicBuffer needed

4] I/WindowState: WIN DEATH: Window{41e99c5 u0 com.my.test.MyActivity}

1 个答案:

答案 0 :(得分:0)

由于没有人回应,我已设法找出问题,问题是

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x10 in tid 32152 (Thread-1910)

由于线程耗尽服务而导致引用MediaRecorder。我正在停止我的服务,如下所示:

stopForeground(true);
stopSelf();

哪(上图)是停止服务的正确方法。但在停止服务之前,我正在释放并停止MediaRecorder。由于MediaRecorder对象仍然可以通过release(之后的服务外部线程访问,因此任何MediaRecorder方法调用都会导致上面的错误被抛出并且它与本机代码相关,因此不是java代码,因此难以跟踪。在下面的问题中进行此错误检查还有其他原因:

Android Fatal signal 11 (SIGSEGV) at 0x636f7d89 (code=1). How can it be tracked down?

由于personne3000this问题的评论,我的问题已解决。