บันทึกและอ่านรายงานข้อบกพร่อง

รายงานข้อบกพร่องมีบันทึกของอุปกรณ์ สแต็กเทรซ และการวินิจฉัยอื่นๆ เพื่อช่วยคุณค้นหาและแก้ไขข้อบกพร่องในแอป เพื่อแก้ไขข้อบกพร่อง จากอุปกรณ์ของคุณ ให้ใช้นักพัฒนาซอฟต์แวร์ใช้รายงานข้อบกพร่อง บนอุปกรณ์ เช่น เมนูโปรแกรมจำลอง Android หรือคำสั่ง adb bugreport ในเครื่องการพัฒนาของคุณ

รูปที่ 1 ตัวเลือกสำหรับนักพัฒนาแอปในอุปกรณ์

คุณต้องมีสิ่งต่อไปนี้เพื่อรับรายงานข้อบกพร่อง ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ที่เปิดใช้อยู่ใน อุปกรณ์เพื่อเข้าถึงตัวเลือกใช้รายงานข้อบกพร่อง

บันทึกรายงานข้อบกพร่องจากอุปกรณ์

รูปที่ 2 รายงานข้อบกพร่องพร้อมใช้งานแล้ว

หากต้องการรับรายงานข้อบกพร่องโดยตรงจากอุปกรณ์ของคุณ ให้ทำดังนี้

  1. เปิดใช้งาน นักพัฒนาซอฟต์แวร์ ตัวเลือก
  2. ในตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ ให้แตะสร้างรายงานข้อบกพร่อง
  3. เลือกประเภทรายงานข้อบกพร่องที่ต้องการ แล้วแตะรายงาน

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

  4. หากต้องการแชร์รายงานข้อบกพร่อง ให้แตะการแจ้งเตือน

บันทึกรายงานข้อบกพร่องจากโปรแกรมจำลองของ Android

จากโปรแกรมจำลองของ Android คุณสามารถใช้รายงานข้อบกพร่อง ในการควบคุมเพิ่มเติม

  1. คลิกเพิ่มเติม ใน แผงโปรแกรมจำลอง
  2. เลือกรายงานข้อบกพร่องในหน้าต่างการควบคุมเพิ่มเติม

    ซึ่งจะเปิดหน้าจอที่คุณสามารถดูรายละเอียดรายงานข้อบกพร่อง เช่น ภาพหน้าจอ ข้อมูลการกำหนดค่า AVD และบันทึกรายงานข้อบกพร่อง คุณสามารถ พิมพ์ข้อความพร้อมขั้นตอนการสร้างข้อผิดพลาดซ้ำเพื่อบันทึกพร้อมกับรายงาน

  3. รอให้รายงานข้อบกพร่องเสร็จสมบูรณ์ แล้วคลิกบันทึกรายงาน

สร้างรายงานข้อบกพร่องโดยใช้ adb

หากคุณมีอุปกรณ์ที่เชื่อมต่ออยู่เพียงเครื่องเดียว คุณสามารถรับรายงานข้อบกพร่องโดยใช้ adb ดังนี้

$ adb bugreport E:\Reports\MyBugReports

หากคุณไม่ระบุเส้นทางสำหรับรายงานข้อบกพร่อง ระบบจะบันทึกเส้นทางนั้นไว้ใน ไดเรกทอรีในเครื่อง

หากมีอุปกรณ์เชื่อมต่ออยู่หลายเครื่อง คุณต้องระบุอุปกรณ์ที่มี ตัวเลือก-s เรียกใช้คำสั่ง adb ต่อไปนี้เพื่อ รับหมายเลขซีเรียลของอุปกรณ์และสร้างรายงานข้อบกพร่อง

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

บันทึกรายงานข้อบกพร่องที่เก่ากว่า

โดยค่าเริ่มต้น ระบบจะบันทึกรายงานข้อบกพร่องที่ /bugreports และสามารถดูได้โดยใช้ คำสั่งต่อไปนี้

$ adb shell ls /bugreports/
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS-dumpstate_log-yyy.txt
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip
dumpstate-stats.txt

จากนั้นคุณสามารถดึงไฟล์ ZIP ผ่าน adb pull:

$ adb pull /bugreports/bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip

ตรวจสอบไฟล์ ZIP ของรายงานข้อบกพร่อง

โดยค่าเริ่มต้น ไฟล์ ZIP จะถูกเรียก bugreport-BUILD_ID-DATE.zip ไฟล์ ZIP สามารถมีได้หลายไฟล์ แต่ไฟล์ที่สำคัญที่สุดคือ bugreport-BUILD_ID-DATE.txt ช่วงเวลานี้ คือรายงานข้อบกพร่อง ซึ่งมี ผลลัพธ์การวินิจฉัยสำหรับบริการของระบบ (dumpsys), บันทึกข้อผิดพลาด (dumpstate) และบันทึกข้อความของระบบ (logcat) ข้อความระบบมีสแต็กเทรซ เมื่ออุปกรณ์แสดงข้อผิดพลาดและข้อความที่เขียนจากแอปทั้งหมดที่มี Log ชั้นเรียน

ไฟล์ ZIP มีไฟล์ข้อมูลเมตา version.txt ที่มี จดหมายอนุญาตของ Android เมื่อเปิดใช้งาน Systrace แล้ว ไฟล์ ZIP ยัง มีไฟล์ systrace.txt เครื่องมือ Systrace ซึ่งช่วยวิเคราะห์ประสิทธิภาพ ด้วยการบันทึกและแสดงเวลาดำเนินการ กระบวนการของแอปและกระบวนการอื่นๆ ของระบบ Android

เครื่องมือ dumpstate จะคัดลอกไฟล์จากระบบไฟล์ของอุปกรณ์ ลงในไฟล์ ZIP ในโฟลเดอร์ FS เพื่อให้คุณใช้อ้างอิงได้ ตัวอย่างเช่น ไฟล์ /dirA/dirB/fileC ในอุปกรณ์จะสร้าง FS/dirA/dirB/fileC รายการในไฟล์ ZIP

รูปที่ 3 โครงสร้างของไฟล์รายงานข้อบกพร่อง

สำหรับข้อมูลเพิ่มเติม โปรดดู การอ่านรายงานข้อบกพร่อง

รับรายงานจากผู้ใช้

การบันทึกรายงานข้อบกพร่องมีประโยชน์เมื่อคุณใช้แอป แต่ผู้ใช้ปลายทางของคุณไม่สามารถแชร์รายงานข้อบกพร่องประเภทนี้ กับคุณ หากต้องการรับรายงานข้อขัดข้องพร้อมสแต็กเทรซจากผู้ใช้จริง ใช้ประโยชน์จากรายงานข้อขัดข้องของ Google Play และ Firebase ใหม่ๆ

Google Play Console

คุณสามารถรับรายงานได้จาก Google Play Console เพื่อดูข้อมูลข้อขัดข้องและแอปพลิเคชัน ข้อผิดพลาดการตอบสนอง (ANR) จากผู้ใช้ที่ติดตั้งแอปของคุณจาก Google Play โดยจะมีข้อมูลย้อนหลังไปได้ในช่วง 6 เดือนที่ผ่านมา

สำหรับข้อมูลเพิ่มเติม โปรดดู ดูข้อผิดพลาดเกี่ยวกับข้อขัดข้องและแอปพลิเคชันไม่ตอบสนอง (ANR) ในความช่วยเหลือของ Play Console

รายงานข้อขัดข้องของ Firebase

การรายงาน Firebase Crashlytics จะสร้างรายงานโดยละเอียดของข้อผิดพลาดในไฟล์ แอป ระบบจะจัดกลุ่มข้อผิดพลาดเป็นปัญหาตามสแต็กเทรซที่คล้ายกันและ ตามความรุนแรงของผลกระทบที่มีต่อผู้ใช้ นอกจากแบบอัตโนมัติ คุณสามารถบันทึกเหตุการณ์ที่กำหนดเองเพื่อช่วยบันทึกขั้นตอนที่ทําให้เกิดข้อขัดข้อง

หากต้องการเริ่มรับรายงานข้อขัดข้องจากผู้ใช้ โปรดเพิ่ม ทรัพยากร Dependency ของ Firebase ลงในไฟล์ build.gradle สำหรับข้อมูลเพิ่มเติม โปรดดู Firebase Crashlytics