Báo cáo lỗi

Làm theo các bước trên trang này để hoàn tất báo cáo lỗi. Có rất ít tài nguyên để sửa lỗi, vì vậy, các lỗi có thông tin đầy đủ sẽ được ưu tiên. Các báo cáo lỗi chưa hoàn chỉnh sẽ bị đóng. Nếu điều này xảy ra, hãy gửi lại lỗi kèm theo thông tin bổ sung.

Để giúp đảm bảo rằng bạn không báo cáo lỗi đã được khắc phục, hãy nhớ dùng phiên bản mới nhất của công cụ. Bạn cũng có thể tìm kiếm các vấn đề tương tự trên công cụ theo dõi lỗi của Android Studio để xem vấn đề mà bạn đang gặp phải đã được báo cáo hay chưa.

Cách báo cáo lỗi

Để báo cáo lỗi, hãy làm theo các bước sau:

  1. Để mở báo cáo lỗi trên Android Studio, hãy chọn Help > Submit Feedback (Trợ giúp > Gửi ý kiến phản hồi).

    Đây là cách dễ dàng nhất để báo cáo lỗi vì các thông tin như phiên bản Android Studio, Kotlin hoặc Java và thông tin hệ thống cần thiết để tái hiện vấn đề đã được điền sẵn trong báo cáo lỗi.

    Bạn cũng có thể gửi báo cáo lỗi tại đây và tự thêm thông tin phiên bản.

  2. Đính kèm báo cáo chẩn đoán để chúng tôi có thể gỡ lỗi sự cố của bạn. Để tạo một tệp zip chứa báo cáo chẩn đoán, hãy nhấp vào Help > Collect Logs and Diagnostic Data (Trợ giúp > Thu thập nhật ký và dữ liệu chẩn đoán).

  3. Mô tả các bước chính xác để tái hiện sự cố. Gửi nhiều thông tin nhất có thể, bao gồm đoạn mã, một dự án GitHub có thể dùng để tái hiện lỗi và ảnh chụp màn hình hoặc bản ghi những gì bạn đang quan sát được.

  4. Mô tả chi tiết về vấn đề. Giải thích kết quả bạn mong đợi và những gì bạn quan sát được.

  5. Chọn một tiêu đề mang tính chất mô tả cho báo cáo lỗi. Việc sử dụng tiêu đề có tính mô tả cụ thể hơn sẽ giúp bạn dễ dàng sắp xếp theo vấn đề hơn.

Đối với một số lỗi, chúng tôi cần thêm thông tin như mô tả trong các phần sau:

Thông tin chi tiết về các lỗi trong Android Studio

Để báo cáo lỗi dành riêng cho Android Studio, hãy cung cấp thêm thông tin như mô tả trong phần này.

Nếu IDE bị treo

Nếu chính IDE có vẻ như hoạt động rất chậm hoặc bị treo hẳn, hãy tạo một số tệp kết xuất luồng (thread dump) như mô tả trên trang này rồi đính kèm vào báo cáo lỗi. Tệp kết xuất luồng sẽ cho bạn thấy IDE chậm đi do đang làm việc gì.

Nếu IDE đang hoạt động chậm nhưng không bị treo, hãy đính kèm tệp idea.log vào báo cáo lỗi. Để đính kèm tệp này, hãy chọn Help > Collect Logs and Diagnostic Data (Trợ giúp > Thu thập nhật ký và dữ liệu chẩn đoán) hoặc Help > Show Log in Files (Trợ giúp > Hiện nhật ký trong tệp) (Help > Show Log in Finder (Trợ giúp > Hiện nhật ký trong Finder) trên macOS). Tệp này cho biết liệu IDE có đang gửi lỗi vào nhật ký hay không.

Sử dụng hồ sơ CPU để chẩn đoán sự cố thiết bị hoạt động chậm

Nếu bạn đang gặp phải hiện tượng Android Studio hoạt động chậm, hồ sơ CPU có thể giúp chẩn đoán sự cố trong một số trường hợp.

Hãy làm theo các bước sau để thu thập hồ sơ CPU bằng trình bổ trợ Kiểm thử hiệu suất của Android Studio:

  1. Cài đặt trình bổ trợ.

    • Trong Android Studio, hãy tìm mục "Performance Testing" (Kiểm thử hiệu suất) trong trang web thương mại về trình bổ trợ.
    • Ngoài ra, bạn có thể tải một phiên bản tương thích với Android Studio xuống qua trang web của trình bổ trợ.
  2. Tạo hồ sơ CPU.

    1. Khi Android Studio có vẻ chậm, hãy chọn Start CPU Usage Profiling (Bắt đầu phân tích mức sử dụng CPU).
    2. Lặp lại một số thao tác có thể gây ra vấn đề về độ trễ (hoàn tất mã, nhập và chờ đánh dấu, v.v.).
    3. Nhấp vào Stop CPU Usage Profiling (Dừng phân tích mức sử dụng CPU).
  3. Chia sẻ tệp hồ sơ.

    Một hộp chú giải sẽ xuất hiện, cung cấp tên tệp tổng quan nhanh về CPU, theo định dạng snapshot-NNN. Hãy chia sẻ tệp tổng quan nhanh đó trong báo cáo lỗi.

Nếu IDE bị hết bộ nhớ

Đôi khi, các sự cố về bộ nhớ trong Android Studio rất khó được tái hiện và báo cáo. Để giải quyết vấn đề này, Android Studio có một tính năng giúp báo cáo mức sử dụng bộ nhớ. Bạn có thể gửi báo cáo này cho Nhóm Android Studio để hỗ trợ việc xác định nguồn gốc của các sự cố về bộ nhớ.

Chạy báo cáo mức sử dụng bộ nhớ

Để chạy tính năng báo cáo mức sử dụng bộ nhớ, hãy làm theo các bước sau:

  1. Nhấp vào Help > Analyze Memory Usage (Trợ giúp > Phân tích mức sử dụng bộ nhớ) trên thanh trình đơn.

    Android Studio sẽ kết xuất vùng nhớ khối xếp và nhắc bạn khởi động lại IDE. Nếu bạn khởi động lại IDE, quá trình phân tích tệp báo lỗi sẽ bắt đầu ngay lập tức. Nếu không, quá trình phân tích tệp báo lỗi sẽ bắt đầu vào lần tiếp theo bạn chạy Android Studio. Dù ở trường hợp nào, IDE sẽ thông báo cho bạn khi báo cáo mức sử dụng bộ nhớ đã sẵn sàng cho việc xem xét, như minh hoạ trong hình 1.

    Thông báo cho biết báo cáo mức sử dụng bộ nhớ đã sẵn sàng cho việc xem xét
    Hình 1. Thông báo về Báo cáo mức sử dụng bộ nhớ.
  2. Nhấp vào Review Report (Xem lại báo cáo).

    Trước khi gửi báo cáo, bạn có thể xem lại những thông tin có trong báo cáo:

    Báo cáo về mức sử dụng bộ nhớ.
    Hình 2. Dữ liệu phân tích về Báo cáo mức sử dụng bộ nhớ.
  3. Sau khi bạn hoàn tất việc xem lại, hãy sao chép và dán nội dung của báo cáo vào một tệp và đính kèm tệp đó khi bạn gửi báo cáo lỗi.

    Việc gửi thông tin báo cáo theo cách này giúp đảm bảo rằng Nhóm Android Studio có thể liên hệ với bạn bằng công cụ theo dõi lỗi trong khi kiểm tra các vấn đề về bộ nhớ của bạn.

Nếu IDE gặp sự cố hoặc ngoại lệ

Đối với các loại sự cố khác, hãy đính kèm tệp idea.log có trong Help > Collect Logs and Diagnostic Data (Trợ giúp > Thu thập nhật ký và dữ liệu chẩn đoán) hoặc Help > Show Log in Files (Trợ giúp > Hiện nhật ký trong tệp) (Help > Show Log in Finder (Trợ giúp > Hiện nhật ký trong Finder) trên macOS).

Tạo tệp kết xuất luồng (thread dump)

Tệp kết xuất luồng là bản in của tất cả các luồng chạy trong JVM. Đối với mỗi luồng, tệp này bao gồm một bản in của tất cả các khung ngăn xếp. Tệp này giúp bạn dễ dàng xem được những tác vụ IDE đang thực hiện, đặc biệt là khi tạo một vài tệp kết xuất luồng cách nhau vài giây.

Đối với các lỗi được báo cáo, trong đó IDE ở trạng thái rất bận với CPU được cố định, hoặc khi IDE có vẻ như bị treo, thì một tệp kết xuất luồng có thể xác định mã nào đang hoạt động nhiều hoặc đoạn mã nào đang cạnh tranh về tài nguyên và gây tắc nghẽn.

JDK đưa ra một công cụ có tên jstack, có thể dùng để tạo tệp kết xuất luồng. Trước tiên, hãy tìm mã định danh tiến trình (PID) của tiến trình trong Android Studio. Để thực hiện việc này, hãy sử dụng lệnh jps:

Trên Linux hoặc macOS:

jps -mv | grep studio

Trên Windows:

jps -mv | findstr studio

Thao tác này sẽ in một dòng dài, chẳng hạn như:

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

Số đầu tiên (trong ví dụ này là 37605) là mã định danh tiến trình.

Tiếp theo, hãy tạo tệp kết xuất luồng rồi lưu tệp đó vào tệp dump.txt:

jstack -l pid >> dump.txt

Nếu cách này không hiệu quả, có một số cách khác giúp bạn tạo tệp kết xuất luồng dành riêng cho nền tảng. Để biết hướng dẫn chi tiết, hãy xem trang Hỗ trợ IntelliJ.

Thông tin chi tiết về công cụ bản dựng và lỗi Gradle

Để báo cáo lỗi cho các công cụ bản dựng hoặc Gradle, hãy đính kèm một dự án thực tế hoặc dự án mẫu minh hoạ vấn đề đó để giúp đảm bảo rằng tất cả thông tin cần thiết đều được ghi lại. Hãy xoá mọi thông tin nhạy cảm trước khi chia sẻ.

Nếu bạn không thể chia sẻ một dự án, hãy cho biết phiên bản của các công cụ mà bạn đang sử dụng. (Cố gắng sử dụng các phiên bản xem trước hoặc phiên bản ổn định mới nhất trước khi báo cáo lỗi). Để tìm các phiên bản của công cụ, hãy làm như sau:

  • Phiên bản trình bổ trợ Android cho Gradle:

    1. Chọn File > Project Structure (Tệp > Cấu trúc dự án).
    2. Nhấp vào Project (Dự án).
    3. Tìm mục Android Gradle Plugin Version (Phiên bản Trình bổ trợ Android cho Gradle).
  • Phiên bản Gradle:

    1. Chọn File > Project Structure (Tệp > Cấu trúc dự án).
    2. Nhấp vào Project (Dự án).
    3. Tìm mục Gradle Version (Phiên bản Gradle).
  • Phiên bản Android Studio:

    1. Chọn Help > About (Trợ giúp > Giới thiệu).
    2. Tìm mục Android Studio Version (Phiên bản Android Studio).

Ngoài ra, nếu có, hãy cung cấp các thông tin sau đây:

  • Nếu một hành vi đã thay đổi đột ngột từ một phiên bản cũ sang phiên bản hiện tại, hãy chỉ ra cả hai phiên bản.
  • Nếu không tạo được bản dựng vì gặp lỗi, hãy chạy bản dựng từ dòng lệnh bằng tuỳ chọn --stacktrace (chẳng hạn như ./gradlew <task> --stacktrace) và cung cấp dấu vết ngăn xếp trong báo cáo lỗi.
  • Nếu việc tạo bản dựng mất nhiều thời gian hơn dự kiến, hãy thử một trong các cách sau:
    • Chạy ./gradlew <task> --scan và chia sẻ bản quét của bản dựng Gradle đã tạo trong báo cáo lỗi.
    • Chạy ./gradlew <task> -Pandroid.enableProfileJson=true và chia sẻ các tệp Chrome-trace được tạo trong thư mục <root-project>/build/android-profile.

Thông tin chi tiết về lỗi của Trình mô phỏng Android

Hãy làm theo các bước sau để sử dụng các chế độ điều khiển mở rộng của trình mô phỏng để thu thập thông tin và báo cáo lỗi:

  1. Trong bảng điều khiển của trình mô phỏng, hãy nhấp vào biểu tượng Xem thêm .
  2. Trong cửa sổ Extended controls (Chế độ điều khiển mở rộng), hãy chọn Bug Report (Báo cáo lỗi).

    Thao tác này sẽ mở ra một màn hình có thông tin chi tiết về báo cáo lỗi như ảnh chụp màn hình, thông tin cấu hình AVD và nhật ký báo cáo lỗi. Bạn có thể nhập các bước để tái hiện lỗi ở đây hoặc đợi và nhập các bước đó vào báo cáo được tạo ở bước tiếp theo.

  3. Đợi báo cáo lỗi hoàn tất việc thu thập thông tin, sau đó nhấp vào Send to Google (Gửi tới Google).

    Một cửa sổ sẽ mở ra để bạn lưu báo cáo lỗi vào một thư mục. Trình duyệt của bạn cũng mở để tạo một báo cáo trong công cụ theo dõi lỗi của Google với thông tin chi tiết cần thiết về trình mô phỏng đã điền.

  4. Trong báo cáo, hãy hoàn tất mọi thông tin chi tiết còn lại (chẳng hạn như các bước để tái hiện lỗi) và đính kèm các tệp đã lưu khi bạn tạo báo cáo lỗi.

Nếu không, hãy nhập những thông tin sau theo cách thủ công:

  • Phiên bản Trình mô phỏng

    1. Trong trình mô phỏng, hãy mở Extended controls (Chế độ điều khiển mở rộng).
    2. Nhấp vào Help (Trợ giúp).
    3. Nhấp vào thẻ About (Giới thiệu) để tìm Emulator version (Phiên bản trình mô phỏng).
  • Phiên bản Bộ công cụ SDK Android

    1. Chọn Tools > SDK Manager (Công cụ > Trình quản lý SDK).
    2. Nhấp vào SDK Tools (Bộ công cụ SDK).
    3. Tìm Android SDK Tools (Bộ công cụ SDK Android).
  • Mô hình CPU lưu trữ

    • Trên Linux: Mở /proc/cpuinfo.
    • Trên Windows: Nhấp chuột phải vào My Computer (Máy tính của tôi) rồi chọn Properties (Thuộc tính).
    • Trên macOS: Chọn biểu tượng Apple rồi nhấp vào About This Mac (Giới thiệu về máy Mac này)
  • Tên thiết bị

    1. Trong AVD Manager (Trình quản lý thiết bị ảo Android), hãy nhấp để mở trình đơn trong cột Actions (Thao tác) cho thiết bị.
    2. Chọn View Details (Xem thông tin chi tiết) (hoặc mở tệp $avdname.avd/config.ini).
    3. Tìm mục nhập cho hw.device.name. Ví dụ: hw.device.name=Nexus 5.