รายงานข้อบกพร่อง

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

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

วิธีรายงานข้อบกพร่อง

หากต้องการรายงานข้อบกพร่อง ให้ทำตามขั้นตอนต่อไปนี้

  1. หากต้องการเปิดรายงานข้อบกพร่องจาก Android Studio ให้เลือกความช่วยเหลือ > ส่งรายงานข้อบกพร่อง

    วิธีนี้เป็นวิธีที่ง่ายที่สุดในการเริ่มรายงานข้อบกพร่อง เนื่องจากจะป้อนข้อมูลเวอร์ชัน Android Studio, เวอร์ชัน Kotlin หรือ Java และข้อมูลระบบลงในรายงานข้อบกพร่อง ซึ่งจําเป็นต่อการจำลองปัญหาให้เกิดขึ้นอีกครั้งอย่างถูกต้อง

    นอกจากนี้ คุณยังรายงานข้อบกพร่องได้ที่นี่และเพิ่มข้อมูลเวอร์ชันด้วยตนเองได้

  2. แนบรายงานการวินิจฉัยเพื่อให้เราแก้ไขข้อบกพร่องได้ หากต้องการสร้างไฟล์ ZIP ของรายงานการวินิจฉัย ให้คลิกความช่วยเหลือ > รวบรวมบันทึกและข้อมูลการวินิจฉัย

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

  4. อธิบายปัญหาโดยละเอียด อธิบายผลลัพธ์ที่คุณคาดหวัง และสิ่งที่สังเกตเห็นแทน

  5. เลือกชื่อที่สื่อความหมายสำหรับรายงานข้อบกพร่อง การใช้ชื่อที่สื่อความหมายมากขึ้นจะช่วยให้จัดเรียงตามปัญหาได้ง่ายขึ้น

สำหรับข้อบกพร่องบางอย่าง เราต้องการข้อมูลเพิ่มเติมตามที่อธิบายไว้ในส่วนต่อไปนี้

รายละเอียดข้อบกพร่องของ Android Studio

หากต้องการรายงานข้อบกพร่องเฉพาะของ Android Studio ให้ระบุข้อมูลเพิ่มเติมตามที่อธิบายไว้ในส่วนนี้

หาก IDE ค้าง

หาก IDE ทำงานช้ามากหรือค้างไปเลย ให้สร้างการดัมพ์เธรด 2-3 รายการตามที่อธิบายไว้ในหน้านี้ แล้วแนบไปกับรายงานข้อบกพร่อง การดัมพ์ชุดข้อความจะแสดงสิ่งที่ IDE กำลังทำอยู่ซึ่งทำให้ IDE ทำงานช้าลง

หาก IDE ทำงานช้าแต่ไม่ได้ค้าง ให้แนบไฟล์ idea.log ไปกับรายงานข้อบกพร่อง หากต้องการแนบไฟล์ ให้เลือกความช่วยเหลือ > รวบรวมบันทึกและข้อมูลการวินิจฉัย หรือความช่วยเหลือ > แสดงบันทึกใน Files (ความช่วยเหลือ > แสดงบันทึกใน Finder ใน macOS) ไฟล์นี้จะแสดงว่า IDE แสดงข้อผิดพลาดในบันทึกหรือไม่

ใช้โปรไฟล์ CPU เพื่อวิเคราะห์ความช้า

หาก Android Studio ทำงานช้า โปรไฟล์ CPU อาจช่วยวินิจฉัยปัญหาได้

ทำตามขั้นตอนต่อไปนี้เพื่อบันทึกโปรไฟล์ CPU โดยใช้ปลั๊กอินการทดสอบประสิทธิภาพของ Android Studio

  1. ติดตั้งปลั๊กอิน

    • ใน Android Studio ให้ค้นหา "การทดสอบประสิทธิภาพ" ในแพลตฟอร์มจำหน่ายปลั๊กอิน
    • หรือจะดาวน์โหลดเวอร์ชันที่ใช้ร่วมกับ Android Studio ก็ได้จากเว็บไซต์ปลั๊กอิน
  2. สร้างโปรไฟล์ CPU

    1. เมื่อ Android Studio ทำงานช้า ให้เลือกเริ่มการโปรไฟล์การใช้ CPU
    2. ทำซ้ำการดำเนินการ 2-3 อย่างซึ่งมีปัญหาเกี่ยวกับเวลาในการตอบสนอง (การเติมโค้ด การพิมพ์และรอให้ไฮไลต์ทำงานทัน และอื่นๆ)
    3. คลิกหยุดสร้างโปรไฟล์การใช้งาน CPU
  3. แชร์ไฟล์โปรไฟล์

    บอลลูนจะปรากฏขึ้นพร้อมชื่อไฟล์สแนปชอต CPU ซึ่งอยู่ในรูปแบบ snapshot-NNN แชร์ไฟล์ภาพรวมนั้นในรายงานข้อบกพร่อง

หาก IDE มีหน่วยความจำไม่เพียงพอ

บางครั้งปัญหาเกี่ยวกับหน่วยความจำใน Android Studio อาจทำให้เกิดปัญหาในการจำลองและรายงาน Android Studio มีรายงานการใช้งานหน่วยความจำที่คุณสามารถส่งให้ทีม Android Studio เพื่อช่วยระบุแหล่งที่มาของปัญหาเกี่ยวกับหน่วยความจำได้ เพื่อช่วยแก้ปัญหานี้

เรียกใช้รายงานการใช้งานหน่วยความจำ

หากต้องการเรียกใช้รายงานการใช้งานหน่วยความจํา ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกความช่วยเหลือ > วิเคราะห์การใช้งานหน่วยความจำจากแถบเมนู

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

    การแจ้งเตือนที่ระบุว่ารายงานการใช้งานหน่วยความจำพร้อมให้ตรวจสอบแล้ว
    รูปที่ 1 หน่วยความจํา ใช้การแจ้งเตือนรายงาน
  2. คลิกรายงานรีวิว

    ก่อนส่งรายงาน คุณสามารถตรวจสอบข้อมูลต่อไปนี้ซึ่งรวมอยู่ในรายงาน

    รายงานการใช้งานหน่วยความจำ
    รูปที่ 2 การวิเคราะห์รายงานการใช้หน่วยความจํา
  3. หลังจากตรวจสอบเสร็จแล้ว ให้คัดลอกเนื้อหาของรายงานลงในไฟล์ แล้วแนบไฟล์นั้นเมื่อรายงานข้อบกพร่อง

    การส่งข้อมูลรายงานด้วยวิธีนี้จะช่วยให้ทีม Android Studio สื่อสารกับคุณโดยใช้เครื่องมือติดตามปัญหาขณะตรวจสอบปัญหาเกี่ยวกับหน่วยความจำ

หาก IDE ขัดข้องหรือมีการโยนข้อยกเว้น

สําหรับข้อขัดข้องประเภทอื่นๆ ให้แนบไฟล์ idea.log ที่พบโดยเลือกความช่วยเหลือ > รวบรวมบันทึกและข้อมูลการวินิจฉัย หรือความช่วยเหลือ > แสดงบันทึกใน Files (ความช่วยเหลือ > แสดงบันทึกใน Finder ใน macOS)

สร้างการดัมพ์ชุดข้อความ

การดัมพ์ชุดข้อความคือการพิมพ์ชุดข้อความทั้งหมดที่ทำงานอยู่ใน JVM สําหรับแต่ละชุดข้อความ จะมีภาพพิมพ์ของสแต็กเฟรมทั้งหมด วิธีนี้ช่วยให้คุณเห็นสิ่งที่ IDE กำลังทำอยู่ได้ง่ายๆ โดยเฉพาะหากคุณสร้างการดัมพ์เธรด 2 รายการห่างกัน 2-3 วินาที

เมื่อคุณรายงานข้อบกพร่องที่ IDE ทำงานหนักมากจน CPU ทำงานเต็มขีด หรือ IDE ดูเหมือนจะค้างอยู่ การดัมพ์เธรดจะระบุได้อย่างชัดเจนว่าโค้ดใดทำงานหนักมาก หรือเธรดใดกำลังแย่งชิงทรัพยากรและทำให้เกิดปัญหาการล็อกตาย

JDK มาพร้อมกับเครื่องมือชื่อ jstack ซึ่งสามารถใช้สร้างดัมพ์เธรดได้ ก่อนอื่น ให้ค้นหารหัสกระบวนการ (PID) ของกระบวนการ Android Studio โดยใช้คำสั่ง jps ดังนี้

ใน Linux หรือ macOS ให้ทำดังนี้

jps -mv | grep studio

บน Windows:

jps -mv | findstr studio

ซึ่งจะพิมพ์บรรทัดยาวๆ เช่น

$ jps -mv | grep studio
37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...

ตัวเลขแรก (37605 ในตัวอย่างนี้) คือรหัสกระบวนการ

ต่อไป ให้สร้างดัมพ์เธรดและบันทึกลงในไฟล์ dump.txt โดยทำดังนี้

jstack -l pid >> dump.txt

หากไม่ได้ผล ยังมีวิธีอื่นๆ ในการสร้างดัมพ์เธรดสำหรับแพลตฟอร์มที่เฉพาะเจาะจง ดูวิธีการโดยละเอียดได้ที่การสนับสนุนของ IntelliJ

รายละเอียดสำหรับเครื่องมือสร้างและข้อบกพร่องของ Gradle

หากต้องการรายงานข้อบกพร่องสำหรับเครื่องมือสร้างหรือ Gradle ให้แนบโปรเจ็กต์จริงหรือโปรเจ็กต์ตัวอย่างที่แสดงปัญหาเพื่อให้แน่ใจว่ามีการบันทึกข้อมูลที่จำเป็นทั้งหมดแล้ว โปรดนำข้อมูลที่ละเอียดอ่อนออกก่อนแชร์

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

  • เวอร์ชันปลั๊กอิน Android Gradle

    1. เลือกไฟล์ > โครงสร้างโปรเจ็กต์
    2. คลิกโปรเจ็กต์
    3. ค้นหาเวอร์ชันปลั๊กอิน Android Gradle
  • เวอร์ชัน Gradle:

    1. เลือกไฟล์ > โครงสร้างโปรเจ็กต์
    2. คลิกโปรเจ็กต์
    3. ค้นหาเวอร์ชัน Gradle
  • เวอร์ชัน Android Studio:

    1. เลือกความช่วยเหลือ > เกี่ยวกับ
    2. ค้นหาเวอร์ชัน Android Studio

นอกจากนี้ ให้ใส่ข้อมูลต่อไปนี้ด้วย (หากมี)

  • หากลักษณะการทำงานมีการเปลี่ยนแปลงโดยไม่คาดคิดจากเวอร์ชันก่อนหน้าเป็นเวอร์ชันปัจจุบัน ให้ระบุทั้ง 2 เวอร์ชัน
  • หากการบิลด์ไม่สำเร็จโดยมีข้อผิดพลาด ให้เรียกใช้การบิลด์จากบรรทัดคำสั่งโดยใส่ตัวเลือก --stacktrace (เช่น ./gradlew <task> --stacktrace) และระบุสแต็กเทรซในรายงานข้อบกพร่อง
  • หากการสร้างใช้เวลานานกว่าที่คาดไว้ ให้ลองทำอย่างใดอย่างหนึ่งต่อไปนี้
    • เรียกใช้ ./gradlew <task> --scan และแชร์การสแกนบิลด์ Gradle ที่สร้างขึ้นในรายงานข้อบกพร่อง
    • เรียกใช้ ./gradlew <task> -Pandroid.enableProfileJson=true และแชร์ไฟล์ Chrome-trace ที่สร้างขึ้นภายใต้ไดเรกทอรี <root-project>/build/android-profile

รายละเอียดสำหรับข้อบกพร่องของโปรแกรมจำลอง Android

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

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

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

  3. รอให้ระบบรวบรวมรายงานข้อบกพร่องเสร็จ แล้วคลิกส่งไปยัง Google

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

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

หรือป้อนรายละเอียดต่อไปนี้ด้วยตนเอง

  • เวอร์ชันโปรแกรมจำลอง

    1. เปิดการควบคุมแบบขยายในโปรแกรมจำลอง
    2. คลิกความช่วยเหลือ
    3. คลิกแท็บเกี่ยวกับเพื่อดูเวอร์ชันโปรแกรมจำลอง
  • เวอร์ชัน Android SDK Tools

    1. เลือกเครื่องมือ > ตัวจัดการ SDK
    2. คลิก SDK Tools
    3. ค้นหา Android SDK Tools
  • รุ่น CPU ของโฮสต์

    • ใน Linux: เปิด /proc/cpuinfo
    • ใน Windows: คลิกขวาที่คอมพิวเตอร์ของฉัน แล้วเลือกคุณสมบัติ
    • ใน macOS: เลือกไอคอน Apple แล้วคลิกเกี่ยวกับ Mac นี้
  • ชื่ออุปกรณ์

    1. จากเครื่องมือจัดการ AVD ให้คลิกเพื่อเปิดเมนูในคอลัมน์การดําเนินการสําหรับอุปกรณ์
    2. เลือกดูรายละเอียด (หรือเปิดไฟล์ $avdname.avd/config.ini)
    3. ค้นหารายการสำหรับ hw.device.name เช่น hw.device.name=Nexus 5