Chụp và đọc báo cáo lỗi

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Báo cáo lỗi chứa nhật ký thiết bị, dấu vết ngăn xếp, và thông tin chẩn đoán khác để giúp bạn tìm và sửa lỗi trong ứng dụng của mình. Bạn có thể chụp báo cáo lỗi từ thiết bị của mình bằng cách sử dụng tùy chọn Lấy báo cáo lỗi trên thiết bị, menu Trình mô phỏng Android hoặc lệnh adb bugreport trên máy phát triển của bạn.

Hình 1. Tùy chọn cho nhà phát triển

Để nhận báo cáo lỗi, bạn phải bật Tùy chọn cho nhà phát triển trên thiết bị của bạn để có thể truy cập vào tùy chọn Nhận báo cáo lỗi.

Chụp báo cáo lỗi trên một thiết bị

Hình 2. Báo cáo lỗi đã sẵn sàng

Để nhận báo cáo lỗi ngay trên thiết bị của bạn, hãy làm như sau:

  1. Đảm bảo bạn đã bật Tùy chọn cho nhà phát triển.
  2. Trong Tùy chọn cho nhà phát triển, nhấn Nhận báo cáo lỗi.
  3. Chọn loại báo cáo lỗi mà bạn muốn rồi nhấn Báo cáo.

    Sau giây lát, bạn sẽ nhận được một thông báo cho biết báo cáo lỗi đã sẵn sàng (xem hình 2).

  4. Để chia sẻ báo cáo lỗi, hãy nhấn vào thông báo.

Chụp báo cáo lỗi từ Trình mô phỏng Android

Từ Trình mô phỏng Android, bạn có thể sử dụng tính năng Gửi lỗi trong mục điều khiển mở rộng:

  1. Nhấp vào biểu tượng Thêm trong bảng điều khiển mô phỏng.
  2. Trong cửa sổ Kiểm soát mở rộng, chọn Báo cáo lỗi ở bên trái.

    Thao tác này sẽ mở ra một màn hình mà bạn có thể xem 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ũng có thể nhập một thông điệp bằng các bước sao chép để lưu lại bằng báo cáo.

  3. Đợi báo cáo lỗi kết thúc, sau đó nhấp vào Lưu báo cáo.

Chụp báo cáo lỗi bằng adb

Nếu bạn chỉ có một thiết bị kết nối, bạn có thể nhận báo cáo lỗi bằng adb như sau:

$ adb bugreport E:\Reports\MyBugReports

Nếu bạn không chỉ định đường dẫn cho báo cáo lỗi, nó sẽ được lưu vào thư mục trên máy.

Nếu bạn kết nối nhiều thiết bị, bạn phải chỉ định thiết bị với tùy chọn -s. Chạy các lệnh adb sau đây để nhận số sê-ri của thiết bị và tạo báo cáo lỗi.

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

$ adb -s 8XV7N15C31003476 bugreport

Lưu báo cáo lỗi cũ hơn

Theo mặc định, các báo cáo lỗi được lưu tại /bugreports và bạn có thể xem các báo cáo này sử dụng:

$ 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

Sau đó bạn có thể kéo tệp zip thông qua adb pull như sau:

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

Kiểm tra tệp ZIP chứa báo cáo lỗi

Theo mặc định, tệp ZIP có tên bugreport-BUILD_ID-DATE.zip và nó có thể chứa nhiều tệp, nhưng tệp quan trọng nhất là bugreport-BUILD_ID-DATE.txt. Đây là báo cáo lỗi và chứa kết quả chẩn đoán cho các dịch vụ hệ thống (dumpsys), nhật ký lỗi (dumpstate) và nhật ký thông báo hệ thống (logcat). Thông báo hệ thống bao gồm dấu vết ngăn xếp khi thiết bị gặp lỗi và, thông báo được viết từ tất cả các ứng dụng có loại Log.

Tệp ZIP chứa một tệp siêu dữ liệu version.txt có chứa thư phát hành của Android. Khi bạn bật systrace, tệp ZIP cũng sẽ chứa tệp systrace.txt. Công cụ Systrace giúp bạn phân tích hiệu quả hoạt động của ứng dụng bằng cách chụp và hiển thị thời gian thực thi của các quy trình ứng dụng và các quy trình khác của hệ thống Android.

Công cụ dumpstate sao chép các tệp từ hệ thống tệp của thiết bị vào tệp ZIP trong thư mục FS để bạn có thể tham khảo chúng. Ví dụ: một tệp /dirA/dirB/fileC trong thiết bị sẽ tạo một mục FS/dirA/dirB/fileC trong tệp ZIP.

Hình 3. Cấu trúc tệp báo cáo lỗi

Để biết thêm thông tin, hãy xem Đọc báo cáo lỗi.

Nhận báo cáo từ người dùng

Việc chụp các báo cáo lỗi như mô tả ở trên rất hữu ích khi bạn đang sử dụng, nhưng người dùng cuối không thể dễ dàng chia sẻ các loại báo cáo lỗi này với bạn. Để nhận báo cáo sự cố có dấu vết ngăn xếp từ người dùng trong thực tế, bạn nên tận dụng các tính năng báo cáo sự cố của Google Play và Firebase.

Google Play Console

Bạn có thể nhận báo cáo từ Google Play Console để xem dữ liệu về các sự cố và lỗi ứng dụng không phản hồi (ANR) từ người dùng đã cài đặt ứng dụng của bạn từ Google Play. Dữ liệu có sẵn cho sáu tháng trước.

Để biết thêm thông tin, hãy xem Xem sự cố và lỗi ứng dụng không phản hồi (ANR) trong phần trợ giúp của Play Console.

Báo cáo lỗi Firebase

Báo cáo Firebase Crashlytics tạo báo cáo chi tiết về các lỗi trong ứng dụng của bạn. Các lỗi được nhóm thành vấn đề dựa trên dấu vết ngăn xếp tương tự và được phân loại theo mức độ ảnh hưởng đến người dùng. Ngoài việc nhận báo cáo tự động, bạn có thể ghi nhật ký các sự kiện tùy chỉnh để giúp nắm bắt các bước dẫn đến sự cố.

Bạn sẽ bắt đầu nhận được báo cáo sự cố từ những người dùng đơn giản bằng cách thêm phần phụ thuộc Firebase vào tệp build.gradle. Để biết thêm thông tin, hãy xem Firebase Crashlytics.