ทำตามขั้นตอนในหน้านี้เพื่อส่งรายงานข้อบกพร่อง เรามีทรัพยากรในการแก้ไขข้อบกพร่องอย่างจำกัด จึงต้องให้ความสำคัญกับข้อบกพร่องที่มีข้อมูลครบถ้วน ระบบจะปิดรายงานข้อบกพร่องที่ไม่สมบูรณ์ หากเป็นเช่นนั้น โปรดส่งข้อบกพร่องอีกครั้งพร้อมข้อมูลเพิ่มเติม
โปรดตรวจสอบว่าคุณใช้เครื่องมือเวอร์ชันล่าสุดอยู่ เพื่อให้แน่ใจว่าคุณไม่ได้รายงานข้อบกพร่องที่แก้ไขไปแล้ว นอกจากนี้ คุณยังค้นหาปัญหาที่คล้ายกันในเครื่องมือติดตามปัญหาของ Android Studio เพื่อดูว่าปัญหาที่คุณพบได้รับการรายงานแล้วหรือยัง
วิธีรายงานข้อบกพร่อง
หากต้องการรายงานข้อบกพร่อง ให้ทำตามขั้นตอนต่อไปนี้
หากต้องการเปิดรายงานข้อบกพร่องจาก Android Studio ให้เลือกความช่วยเหลือ > ส่งรายงานข้อบกพร่อง
วิธีนี้เป็นวิธีที่ง่ายที่สุดในการเริ่มรายงานข้อบกพร่อง เนื่องจากจะป้อนข้อมูลเวอร์ชัน Android Studio, เวอร์ชัน Kotlin หรือ Java และข้อมูลระบบลงในรายงานข้อบกพร่อง ซึ่งจําเป็นต่อการจำลองปัญหาให้เกิดขึ้นอีกครั้งอย่างถูกต้อง
นอกจากนี้ คุณยังรายงานข้อบกพร่องได้ที่นี่และเพิ่มข้อมูลเวอร์ชันด้วยตนเองได้
แนบรายงานการวินิจฉัยเพื่อให้เราแก้ไขข้อบกพร่องได้ หากต้องการสร้างไฟล์ ZIP ของรายงานการวินิจฉัย ให้คลิกความช่วยเหลือ > รวบรวมบันทึกและข้อมูลการวินิจฉัย
อธิบายขั้นตอนที่แน่นอนในการทําให้เกิดปัญหาซ้ำ ส่งข้อมูลให้มากที่สุดเท่าที่จะเป็นไปได้ ซึ่งรวมถึงข้อมูลโค้ด โปรเจ็กต์ GitHub ที่ใช้จำลองข้อบกพร่องซ้ำได้ รวมถึงภาพหน้าจอหรือไฟล์บันทึกสิ่งที่คุณสังเกตเห็น
อธิบายปัญหาโดยละเอียด อธิบายผลลัพธ์ที่คุณคาดหวัง และสิ่งที่สังเกตเห็นแทน
เลือกชื่อที่สื่อความหมายสำหรับรายงานข้อบกพร่อง การใช้ชื่อที่สื่อความหมายมากขึ้นจะช่วยให้จัดเรียงตามปัญหาได้ง่ายขึ้น
สำหรับข้อบกพร่องบางอย่าง เราต้องการข้อมูลเพิ่มเติมตามที่อธิบายไว้ในส่วนต่อไปนี้
- รายละเอียดข้อบกพร่องของ Android Studio
- รายละเอียดสำหรับเครื่องมือสร้างและข้อบกพร่องของ Gradle
- รายละเอียดข้อบกพร่องของโปรแกรมจำลอง Android
รายละเอียดข้อบกพร่องของ Android Studio
หากต้องการรายงานข้อบกพร่องเฉพาะของ Android Studio ให้ระบุข้อมูลเพิ่มเติมตามที่อธิบายไว้ในส่วนนี้
หาก IDE ค้าง
หาก IDE ทำงานช้ามากหรือค้างไปเลย ให้สร้างการดัมพ์เธรด 2-3 รายการตามที่อธิบายไว้ในหน้านี้ แล้วแนบไปกับรายงานข้อบกพร่อง การดัมพ์ชุดข้อความจะแสดงสิ่งที่ IDE กำลังทำอยู่ซึ่งทำให้ IDE ทำงานช้าลง
หาก IDE ทำงานช้าแต่ไม่ได้ค้าง ให้แนบไฟล์ idea.log
ไปกับรายงานข้อบกพร่อง หากต้องการแนบไฟล์ ให้เลือกความช่วยเหลือ > รวบรวมบันทึกและข้อมูลการวินิจฉัย หรือความช่วยเหลือ > แสดงบันทึกใน Files (ความช่วยเหลือ > แสดงบันทึกใน Finder ใน macOS)
ไฟล์นี้จะแสดงว่า IDE แสดงข้อผิดพลาดในบันทึกหรือไม่
ใช้โปรไฟล์ CPU เพื่อวิเคราะห์ความช้า
หาก Android Studio ทำงานช้า โปรไฟล์ CPU อาจช่วยวินิจฉัยปัญหาได้
ทำตามขั้นตอนต่อไปนี้เพื่อบันทึกโปรไฟล์ CPU โดยใช้ปลั๊กอินการทดสอบประสิทธิภาพของ Android Studio
ติดตั้งปลั๊กอิน
- ใน Android Studio ให้ค้นหา "การทดสอบประสิทธิภาพ" ในแพลตฟอร์มจำหน่ายปลั๊กอิน
- หรือจะดาวน์โหลดเวอร์ชันที่ใช้ร่วมกับ Android Studio ก็ได้จากเว็บไซต์ปลั๊กอิน
สร้างโปรไฟล์ CPU
- เมื่อ Android Studio ทำงานช้า ให้เลือกเริ่มการโปรไฟล์การใช้ CPU
- ทำซ้ำการดำเนินการ 2-3 อย่างซึ่งมีปัญหาเกี่ยวกับเวลาในการตอบสนอง (การเติมโค้ด การพิมพ์และรอให้ไฮไลต์ทำงานทัน และอื่นๆ)
- คลิกหยุดสร้างโปรไฟล์การใช้งาน CPU
แชร์ไฟล์โปรไฟล์
บอลลูนจะปรากฏขึ้นพร้อมชื่อไฟล์สแนปชอต CPU ซึ่งอยู่ในรูปแบบ
snapshot-NNN
แชร์ไฟล์ภาพรวมนั้นในรายงานข้อบกพร่อง
หาก IDE มีหน่วยความจำไม่เพียงพอ
บางครั้งปัญหาเกี่ยวกับหน่วยความจำใน Android Studio อาจทำให้เกิดปัญหาในการจำลองและรายงาน Android Studio มีรายงานการใช้งานหน่วยความจำที่คุณสามารถส่งให้ทีม Android Studio เพื่อช่วยระบุแหล่งที่มาของปัญหาเกี่ยวกับหน่วยความจำได้ เพื่อช่วยแก้ปัญหานี้
เรียกใช้รายงานการใช้งานหน่วยความจำ
หากต้องการเรียกใช้รายงานการใช้งานหน่วยความจํา ให้ทําตามขั้นตอนต่อไปนี้
คลิกความช่วยเหลือ > วิเคราะห์การใช้งานหน่วยความจำจากแถบเมนู
Android Studio จะแสดงผลกองและแจ้งให้คุณรีสตาร์ท IDE หากคุณรีสตาร์ท IDE การวิเคราะห์กองข้อมูลจะเริ่มต้นทันที ไม่เช่นนั้นการวิเคราะห์กองขยะจะเริ่มขึ้นเมื่อคุณเรียกใช้ Android Studio ครั้งถัดไป ไม่ว่าในกรณีใด IDE จะแจ้งให้คุณทราบเมื่อรายงานการใช้งานหน่วยความจำพร้อมให้ตรวจสอบแล้ว ดังที่แสดงในรูปที่ 1
รูปที่ 1 หน่วยความจํา ใช้การแจ้งเตือนรายงาน คลิกรายงานรีวิว
ก่อนส่งรายงาน คุณสามารถตรวจสอบข้อมูลต่อไปนี้ซึ่งรวมอยู่ในรายงาน
รูปที่ 2 การวิเคราะห์รายงานการใช้หน่วยความจํา หลังจากตรวจสอบเสร็จแล้ว ให้คัดลอกเนื้อหาของรายงานลงในไฟล์ แล้วแนบไฟล์นั้นเมื่อรายงานข้อบกพร่อง
การส่งข้อมูลรายงานด้วยวิธีนี้จะช่วยให้ทีม 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
- เลือกไฟล์ > โครงสร้างโปรเจ็กต์
- คลิกโปรเจ็กต์
- ค้นหาเวอร์ชันปลั๊กอิน Android Gradle
เวอร์ชัน Gradle:
- เลือกไฟล์ > โครงสร้างโปรเจ็กต์
- คลิกโปรเจ็กต์
- ค้นหาเวอร์ชัน Gradle
เวอร์ชัน Android Studio:
- เลือกความช่วยเหลือ > เกี่ยวกับ
- ค้นหาเวอร์ชัน Android Studio
นอกจากนี้ ให้ใส่ข้อมูลต่อไปนี้ด้วย (หากมี)
- หากลักษณะการทำงานมีการเปลี่ยนแปลงโดยไม่คาดคิดจากเวอร์ชันก่อนหน้าเป็นเวอร์ชันปัจจุบัน ให้ระบุทั้ง 2 เวอร์ชัน
- หากการบิลด์ไม่สำเร็จโดยมีข้อผิดพลาด ให้เรียกใช้การบิลด์จากบรรทัดคำสั่งโดยใส่ตัวเลือก
--stacktrace
(เช่น./gradlew <task> --stacktrace
) และระบุสแต็กเทรซในรายงานข้อบกพร่อง - หากการสร้างใช้เวลานานกว่าที่คาดไว้ ให้ลองทำอย่างใดอย่างหนึ่งต่อไปนี้
- เรียกใช้
./gradlew <task> --scan
และแชร์การสแกนบิลด์ Gradle ที่สร้างขึ้นในรายงานข้อบกพร่อง - เรียกใช้
./gradlew <task> -Pandroid.enableProfileJson=true
และแชร์ไฟล์ Chrome-trace ที่สร้างขึ้นภายใต้ไดเรกทอรี<root-project>/build/android-profile
- เรียกใช้
รายละเอียดสำหรับข้อบกพร่องของโปรแกรมจำลอง Android
ทําตามขั้นตอนต่อไปนี้เพื่อใช้การควบคุมแบบขยายของโปรแกรมจําลองเพื่อรวบรวมข้อมูลและรายงานข้อบกพร่อง
- ในแผงโปรแกรมจำลอง ให้คลิกเพิ่มเติม
ในหน้าต่างการควบคุมแบบขยาย ให้เลือกรายงานข้อบกพร่อง
ซึ่งจะเปิดหน้าจอที่มีรายละเอียดรายงานข้อบกพร่อง เช่น ภาพหน้าจอ ข้อมูลการกําหนดค่า AVD และบันทึกรายงานข้อบกพร่อง คุณสามารถป้อนขั้นตอนการทําซ้ำที่นี่ หรือรอแล้วป้อนลงในรายงานที่สร้างขึ้นในขั้นตอนถัดไป
รอให้ระบบรวบรวมรายงานข้อบกพร่องเสร็จ แล้วคลิกส่งไปยัง Google
หน้าต่างจะเปิดขึ้นเพื่อให้คุณบันทึกรายงานข้อบกพร่องในโฟลเดอร์ เบราว์เซอร์จะเปิดขึ้นเพื่อสร้างรายงานในเครื่องมือติดตามปัญหาของ Google พร้อมกรอกรายละเอียดโปรแกรมจำลองที่จำเป็น
ในรายงาน ให้กรอกรายละเอียดที่เหลือ เช่น ขั้นตอนในการทําให้เกิดข้อบกพร่องซ้ำ และแนบไฟล์ที่บันทึกไว้เมื่อคุณสร้างรายงานข้อบกพร่อง
หรือป้อนรายละเอียดต่อไปนี้ด้วยตนเอง
เวอร์ชันโปรแกรมจำลอง
- เปิดการควบคุมแบบขยายในโปรแกรมจำลอง
- คลิกความช่วยเหลือ
- คลิกแท็บเกี่ยวกับเพื่อดูเวอร์ชันโปรแกรมจำลอง
เวอร์ชัน Android SDK Tools
- เลือกเครื่องมือ > ตัวจัดการ SDK
- คลิก SDK Tools
- ค้นหา Android SDK Tools
รุ่น CPU ของโฮสต์
- ใน Linux: เปิด
/proc/cpuinfo
- ใน Windows: คลิกขวาที่คอมพิวเตอร์ของฉัน แล้วเลือกคุณสมบัติ
- ใน macOS: เลือกไอคอน Apple แล้วคลิกเกี่ยวกับ Mac นี้
- ใน Linux: เปิด
ชื่ออุปกรณ์
- จากเครื่องมือจัดการ AVD ให้คลิกเพื่อเปิดเมนูในคอลัมน์การดําเนินการสําหรับอุปกรณ์
- เลือกดูรายละเอียด (หรือเปิดไฟล์
$avdname.avd/config.ini
) - ค้นหารายการสำหรับ hw.device.name เช่น
hw.device.name=Nexus 5