2014-03-25 22 views
1

我只想問,如果可以在沒有連接到PC的設備的情況下在sdcard中保存android運行時錯誤信息?我試圖運行:
adb shell "logcat -v threadtime *:V > /mnt/sdcard/logcat_log.txt"如何在未連接到PC的情況下將android運行時錯誤日誌保存在設備中?

當我拔出USB時缺少運行時錯誤。

有什麼想法?感謝您的意見。


在這裏,我剛剛挖了一些信息。從一開始,我通過這個命令'adb shell'logcat -v threadtime -f /mnt/sdcard/logcat_log.txt''將連續輸出日誌到文件'logcat_log.txt'。經過幾次測試,檢查和文檔閱讀有關logcat,我發現這個命令只會刷新Android的日誌緩衝區,然後STOP。這就是爲什麼我無法再次刷新日誌緩衝區時,無法獲取此文件中的運行時錯誤信息的原因。感謝Pragna和Narkha的回覆。


我只是把我的解決方案放在這裏,將來誰可能需要它。我的測試平臺是Windows 7,如果您使用的是Linux或Mac OS X,則會更好,並且解決方案包含Wi​​ndows腳本腳本,android shell腳本;它們是run.bat,logcat.sh,run_monkey.sh和run_logcat.sh。

#"run.bat" 
adb shell "echo "" > /mnt/sdcard/logcat_log.txt" #clean up previous log 
adb push logcat.sh /mnt/sdcard/   # 
start bash run_logcat.sh 
start bash run_monkey.sh 
pause 

#"logcat.sh" 
logcat -v threadtime *:V > /mnt/sdcard/logcat_log.txt 

#"run_moneky.sh" 
adb shell "monkey -p com.test.androidclient --throttle 300 -c android.intent.category.MONKEY -c android.intent.category.LAUNCHER -c android.intent.category.DEFAULT --pct-majornav 20 --monitor-native-crashes --ignore-security-exceptions --ignore-crashes --ignore-timeouts --kill-process-after-error -s 220 -v -v -v 99999" 

#"run_logcat.sh" 
adb shell "sh /mnt/sdcard/logcat.sh &" 
+0

的可能重複[如何我的日誌輸出的logcat到SD卡重定向在Android設備上?(http://stackoverflow.com/questions/3359692/how-to-redirect -my-log-output-from-logcat-to-the-sd-card-on-an-android-device) – Narkha

回答

2
try { 
    File logfile= new File(Environment.getExternalStorageDirectory()+"/logfile.log"); 
    filename.createNewFile(); 
    String cmd = "logcat -d -f "+logfile.getAbsolutePath(); 
    Runtime.getRuntime().exec(cmd); 
} catch (IOException e) { 

    e.printStackTrace(); 
} 
+0

對不起,對於遲來的回覆Pragna,我會嘗試你的代碼併發布新的進度,如果我有更多的細節。 –

+0

混淆答案...什麼是'filename.createNewFile();'?而對於linux命令的一個小解釋它已經被認爲是! – Choletski

相關問題