I'm testi开发者_StackOverflow社区ng an android application with a long running service. I'm using Eclipse and have the usb cord hooked up with the phone sitting next to me. Since it's a long ongoing service, I do some other work while it runs and check the logcat logs every once in a while to make sure everything is going as expected.
A few minutes ago I noticed the phone rebooting. I think it's done this before as it would explain some weird application behavior. I quickly switched over to Eclipse to see what happened and found that the logcat log was (it seems) cleared during the reboot. So there's no log of whether my app crashed (and took down the phone?!) or if there was some other problem that took down the phone and my app.
Is there anyway I can find out what happened? This is a development phone, so I don't know if it reboots/crashes often on its own, or only while my app is running. It's a Motorola Droid running Firmware version 2.1-update1.
Thanks for your help.
I don't know of any way to do this. However, you could start up logcat in adb
with adb logcat -v time > logcat.txt
and then run your app again. If it crashes a second time, then you can go look at the output in logcat.txt
on your machine.
You can use adb bugreport
, which should contain some information regarding a spurious reboot - for example, a kernel panic, last logcat entries etc.
Be warned, though: this tool outputs immense amounts of information, so you'll have to dig deep to find what you need.
I have run into this problem as well. It should be possible to write an app that continuously saves the logcat output to a file on the SD card. There are apps on the market that display the logcat output, so I know it is accessible from within an application.
@djv, I wasn't able to find a /log directory in either root or /data on my phone.
I think that during one of major android update, crash logs are moved from /proc/last_kmsg
to /sys/fs/pstore/console-ramoops-0
精彩评论