Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Mọi lập trình viên đều dành nhiều thời gian tìm lỗi hơn viết mã mới. Với ứng dụng di động, việc này thêm phức tạp vì có thiết bị, hệ điều hành và mạng tham gia. Bài viết giới thiệu công cụ và quy trình gỡ lỗi để bạn xử lý vấn đề có phương pháp.
Trước khi mở công cụ, hãy trả lời: lỗi xảy ra khi nào, có luôn xảy ra không, trên thiết bị hay phiên bản nào? Tái hiện được lỗi ổn định là điều kiện để sửa. Sau đó thu hẹp phạm vi: lỗi nằm ở giao diện, dữ liệu, mạng hay hệ điều hành? Bỏ bớt từng phần để cô lập nguyên nhân.
Nhiều người bỏ qua dòng lỗi đỏ dài. Hãy đọc từ trên xuống: dòng đầu thường nêu loại lỗi và lý do, các dòng sau chỉ ra chuỗi hàm gọi. Tìm dòng đầu tiên thuộc mã của bạn (không phải của framework), đó thường là nơi cần xem trước.
Logcat là luồng nhật ký của hệ thống Android. Trong Android Studio, bạn lọc theo ứng dụng, mức độ (Verbose, Debug, Info, Warn, Error) hoặc từ khóa. Dùng dòng lệnh cũng được:
adb logcat *:E
adb logcat --pid=$(adb shell pidof -s com.example.app)
Trong code Kotlin, ghi log có thẻ rõ ràng:
Log.d("OrderVM", "Đã tải ${orders.size} đơn hàng")
Log.e("OrderVM", "Tải đơn thất bại", exception)
Đừng ghi dữ liệu nhạy cảm như mật khẩu hay token vào log, vì log có thể bị đọc hoặc gửi đi.
Đặt breakpoint để dừng chương trình tại một dòng, rồi xem giá trị biến, ngăn xếp gọi hàm và chạy từng dòng (step over, step into). Cách này tốt hơn nhiều việc in log khắp nơi khi logic phức tạp. Breakpoint có điều kiện giúp chỉ dừng khi một biến có giá trị cụ thể, hữu ích trong vòng lặp dài.
Bộ công cụ này chạy trên trình duyệt, kết nối với ứng dụng đang chạy:
import 'dart:developer' as developer;
developer.log('Đã nhận phản hồi', name: 'api', error: error);
debugPrint('Giá trị: $value');
Nhiều lỗi "ứng dụng" thực ra là lỗi dữ liệu mạng. Xem chính xác yêu cầu gửi đi và phản hồi nhận về bằng công cụ như proxy kiểm tra lưu lượng hoặc trình kiểm tra mạng của IDE. Kiểm tra mã trạng thái, tiêu đề, và thân phản hồi có đúng định dạng đã giả định không. Thử gọi API cùng yêu cầu bằng công cụ như Postman để loại trừ phía máy chủ.
Đôi khi bản debug chạy tốt còn bản release thì lỗi. Nguyên nhân thường là rút gọn mã làm mất lớp được dùng qua phản chiếu, thiếu quyền Internet trong bản release, hoặc khác biệt về thời gian chạy. Hãy thử build bản release trên thiết bị và dùng công cụ báo cáo lỗi sập để xem nhật ký.
Gỡ lỗi giỏi là kỹ năng có thể rèn luyện: đọc thông báo kỹ, dùng đúng công cụ và làm việc có phương pháp. Càng nhiều kinh nghiệm bạn càng đoán đúng nơi cần tìm.
Nếu bạn muốn rèn kỹ năng này qua dự án có hướng dẫn, hãy xem thêm các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment