Android Studio, logcat ล้างออกหลังจากปิดแอป


133

ฉันมีปัญหากับ logcat ของฉันตั้งแต่อัปเดต 1.2 Beta สำหรับ Android Studio เมื่อฉันเรียกใช้แอพของฉันมันจะบันทึกทุกอย่างเหมือนปกติแล้วฉันก็ถึงจุดที่แอพของฉันขัดข้องด้วยแอพที่บอกว่า: น่าเสียดายที่เกมหยุดทำงาน

หลังจากนั้นไม่กี่วินาที android ก็ปิดข้อความนั้น เมื่อสิ่งนั้นเกิดขึ้น logcat ของฉันก็จะได้รับการเคลียร์อย่างสมบูรณ์ซึ่งหมายความว่าฉันแทบจะไม่ต้องอ่านข้อผิดพลาดทุกเวลา ฉันพบข้อมูลบางอย่างเกี่ยวกับบัฟเฟอร์ แต่ดูเหมือนว่า Android Studio ไม่มีตัวเลือกในการเพิ่มนอกเหนือจากความจริงที่ว่าฉันสงสัยว่าเป็นปัญหา

สิ่งที่อาจมีประโยชน์คือหลังจากที่ล้างและสิ่งต่าง ๆ กระบวนการเปลี่ยนเป็น Android.process.core และข้อความที่ฉันได้รับใน logcat ของฉันคือ:

04-13 10:28:13.394  12259-12265/android.process.acore D/dalvikvm    
Debugger has detached; object registry had 1 entries

แก้ไข: ฉันได้อ่านเกี่ยวกับจุดพักแล้วดังนั้นแอปพลิเคชั่นโฟกัสที่ปิดการใช้งานกับจุดพักในการตั้งค่าการสร้างการดำเนินการการปรับใช้ดีบักเกอร์ แต่ไม่มีผลใด ๆ


2
หากคุณพบตำแหน่งที่ติดตั้งของโปรแกรม adb คุณสามารถเรียกใช้adb logcatจากเทอร์มินัลหรือหน้าต่างคำสั่งของคุณและเลือกที่จะวางลงในเพจเจอร์ grep, tee หรืออะไรก็ได้
Chris Stratton

1
ใช่คุณอาจลองadb shell bugreport > log.txtชนิดของข้อมูลบันทึกจะถูกดึงเมื่อคำสั่งเสร็จสิ้น
อร่อย

@yummy ทำงานได้ดีที่สุดสำหรับฉันในตอนนี้ยังหวังว่าจะได้รับการแก้ไขเนื่องจากนี่ไม่ใช่วิธีที่ดีที่สุดในความคิดของฉัน ขอบคุณ
Black Lotus

1
ฉันไม่พบวิธีแก้ไขปัญหาใด ๆ ที่จะไม่มีการล้างบันทึกด้วย Android Studio 1.2 แต่วิธีแก้ปัญหาที่ง่ายคือไม่คลิกที่ปุ่มปิด (ลงบนอุปกรณ์) เมื่อแอปขัดข้อง ดังนั้นคุณมีบันทึกทั้งหมดและสาเหตุที่แอปขัดข้อง
Chakir

@Jameltheone ข้อความอยู่บนหน้าจอเพียงไม่กี่วินาทีจากนั้นจะปิดกล่องโต้ตอบการขัดข้อง ดังนั้นอย่าควบคุมสิ่งนั้นจริงๆ
Black Lotus

คำตอบ:


271

ฉันมีปัญหาเดียวกัน แต่ดูเหมือนว่ามีคุณสมบัติมากกว่าข้อผิดพลาด:

ใน AndroidStudio การตั้งค่าเริ่มต้นสำหรับหน้าต่าง Logcat น่าจะเป็น "แสดงเฉพาะแอปพลิเคชันที่เลือก" (มุมบนขวาของหน้าต่าง Logcat) ... ซึ่งกำลังดูบันทึกของกระบวนการที่เลือก (การเปิดใช้ปัจจุบันของคุณเป็นค่าเริ่มต้น) ดังนั้นเมื่อแอปของคุณขัดข้องในระหว่างการทดสอบกระบวนการนั้นจะหายไปดังนั้นตัวกรองจะล้างบันทึก

เลือก "แก้ไขการกำหนดค่าตัวกรอง ... " แทนและตั้งค่าตัวกรองสำหรับแอปของคุณแทน:

  • ชื่อตัวกรอง: MyApp
  • PackageName: com.example.myapp (<< แทนที่ด้วยชื่อแพ็คเกจของแอปของคุณ)

... จากนั้นเลือกตัวกรองนั้นสำหรับการทำงานในอนาคต สิ่งนี้ควรเก็บบันทึกไว้ที่นั่นเพื่อคุณแม้หลังจากแอปขัดข้อง


ขอบคุณมาก. ฉันพบข้อผิดพลาด 2 วันที่แล้ว! ตอนนี้ฉันรู้วิธีดูข้อผิดพลาดจริงๆ :)
Woppi

คุณเป็นผู้ให้บริการพยายามที่จะคัดลอกวางบันทึกก่อนที่จะล้าง ... คิดว่ามันเป็นโทรศัพท์ของฉันทำเพราะโทรศัพท์อื่น ๆ ทำงานได้ตามปกติ
ท่านอาจารย์ฟาธิ

สิ่งที่ฉันขาดหายไป นี่ควรเป็นคำตอบที่ยอมรับได้
จาระบี

มีปัญหาเดียวกัน ทำงานได้อย่างสมบูรณ์แบบ
Chandan Pednekar

59

สลับ "แสดงเฉพาะแอปพลิเคชันที่เลือก" เป็น "ไม่มีตัวกรอง" ด้วยวิธีนี้คุณสามารถเห็นผลลัพธ์ logcat จากกระบวนการแม้ว่ากระบวนการนั้นจะไม่ทำงาน

ข้อเสียคือว่า logcat ของคุณจะเต็มไปด้วยสแปมมากขึ้นจากกระบวนการอื่น ๆ


1
หากต้องการกรองสแปมให้พิมพ์ชื่อแพ็คเกจของแอปของคุณในแถบค้นหานอกเหนือจากรายการแบบเลื่อนลง "แสดงเฉพาะแอปพลิเคชันที่เลือก / ไม่มีตัวกรอง"
computingfreak

24

แอพของฉันหยุดทำงานและรีสตาร์ท ฉันยังมีปัญหาบางอย่างในการอ่าน logcat เพื่อรู้ว่าเกิดอะไรขึ้น ฉันสังเกตเห็นว่าในเมนูแบบเลื่อนลงถัดจากดรอปดาวน์อุปกรณ์มีบางอย่างเช่น"com.mypackage.myapp ('some number')"และเมื่อแอพของฉันเกิดข้อผิดพลาดมีตัวเลือกอื่นที่กล่าวว่า "com.mypackage.myapp ( 'บางหมายเลข') [ตาย]" หากคุณเลือกตัวเลือก "Dead" มันจะแสดง logcat ของอินสแตนซ์ก่อนหน้านี้

LogCat ที่ตายแล้ว


มันจะปรากฏขึ้นเมื่อมันเกิดปัญหา
ALourenco

ฉันหมายถึงผิดพลาด PID จะเปลี่ยนแปลง แต่อินสแตนซ์ที่ตายแล้วจะไม่ปรากฏในรายการ
Karan Modi

20

ในกรณีที่เกิดความผิดพลาดให้ดูRunแท็บที่ด้านล่างของ IDE

คุณสามารถดูเหตุผลความผิดพลาดในส่วนนี้ (แม้ในกรณีที่สะอาด logcat)

หมายเหตุ:หากเคล็ดลับข้างต้นใช้งานไม่ได้ให้ลองทำเกิดความผิดพลาดและปลดสายเคเบิลมือถือออกทันที (หากคุณใช้อุปกรณ์จริงสำหรับการทดสอบ) คุณสามารถเห็นข้อผิดพลาดก่อนที่จะทำความสะอาด

อัปเดต: หากเคล็ดลับข้างต้นไม่ได้ผลให้ลองแนบและแยกโทรศัพท์และหวังว่าปัญหาจะได้รับการแก้ไข

Update2:หากไม่ได้ผลอีกให้ลองยกเลิกการตรวจสอบและรีสตาร์ทแล้วเริ่มการดีบักอีกครั้ง

Update3:วิธีสุดท้ายให้ลองลบแอพและติดตั้งอีกครั้งจากนั้นเริ่มการดีบั๊ก (หากคุณไม่ทำตามเงื่อนไขที่ต้องการทดสอบ)


6

ใน Android Studio 2+

  1. คลิก Run

  2. คลิก Edit Configurations

  3. ในRun/Debug Configurationsหน้าต่างเลือกMiscellaneousแท็บ

  4. ตรวจสอบให้แน่ใจว่าไม่ได้Clear log before launchเลือกเช็คบ็อกซ์


4

ฉันต้องเผชิญกับปัญหาเดียวกันและนี่คือทางออก: -

1- เครื่องมือ -> Android -> เปิดใช้งานการรวม ADB

และตอนนี้คุณสามารถเห็น logcat และล่มได้ตามปกติ


การรวม ADB ของฉันเปิดใช้งานแล้วน่าเศร้าพอ สิ่งที่เป็นประโยชน์อย่างมากก็คือหลังจากที่ฉันล้างข้อความ: 04-13 10: 28: 13.394 12259-12265 / android.process.acore D / dalvikvm﹕ ดีบักเกอร์แยกออกมา; การลงทะเบียนวัตถุมี 1 รายการ
Black Lotus

@ BlackLotus คุณแก้ปัญหาของคุณแล้วหรือยัง? ฉันต้องเผชิญกับปัญหาเดียวกันที่นี่
ฮู

สิ่งนี้ไม่ถูกต้องใน Android Studio ใหม่
Hamzeh Soboh

4

ตัวกรองจะล้างบันทึกเมื่อแอปขัดข้อง ดังนั้นเลือก "แก้ไขการกำหนดค่าตัวกรอง" และสร้างตัวกรองที่คุณกำหนดเองพร้อมชื่อตัวกรอง นี่จะเป็นการบันทึกข้อมูลพร้อมกับข้อมูลแม้ในขณะที่แอปถูกสาป


1

มันคือ 2018 และสิ่งนี้ยังคงเกิดขึ้นได้ ปิด Android Studio และเปิดใหม่


0

ดูเหมือนว่าข้อผิดพลาดนี้จะได้รับการแก้ไขด้วย Android Studio รุ่น 1.2.2 ใหม่


1
ข้อผิดพลาดยังคงอยู่ที่นี่แม้ใน Android Studio 2.2.2 ดังนั้นฉันเดา @maxdownunder ค่อนข้างถูกต้องโดยมีข้อสันนิษฐานว่ามันเป็น ... "ฟีเจอร์"
Aenadon

0

ฉันพบปัญหาเดียวกันและไม่มีคำตอบใด ๆ ที่สามารถช่วยฉันได้จนกว่าฉันจะรู้ว่าแอปของฉันก่อให้เกิด OutOfMemoryException นั่นเป็นสาเหตุที่เป็นไปได้เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.