App dies with "Sending signal." but no exception or other info

In my case there was no warnings or any clues in the log.

Eventually I found that my problem was that one of the activities I was going into
(lets say Activity X) was registering to a broadcast receiver but never unregistered from it.

Therefor by closing the activity (Activity X) and coming back to it caused registering Again to the same broadcast receiver - which caused the mess!

Simply adding unregisterReceiver(mybroadcast); (in Activity X) solved it.
(I added mine to onDestroy. make sure you unregister in the right location).

And if you are super desperate I recommend seeing this slide share which explains Android crash debugging your errors.


Signal 9 is SIGKILL, which will terminate a process immediately (no handlers inside the process will run). From the log line, the process is killing itself, so its not an external agent that is issuing the SIGKILL.

My guess (and its really a guess) is that the memory management code running inside your process (as part of the infrastructure, not code that you wrote) is deciding that you've exhausted some resource and the only recourse is to die. I would expect there to be more messages before this point is reached in the log, so it may be worth browsing the log history to see if there are useful warnings from the process before this point.

The line immediately before this is a GC log, which implies that some sort of memory resource is running low. But it looks like the heaps are not full, so failing allocations seems unlikely. You can still get allocation failures if the object being allocated was too large to fit on the heap, or fragmentation prevented it from being allocated. I'd expect to see more relevant log messages in this case, though.

I think capturing more of the log (perhaps filtering it by your app's PID if necessary) will help you make progress.

Tags:

Android