Sửa lỗi "Unfortunately, App Has Stopped" trên Android

beginner📱 Android2026-03-19| Android 6.0–14 (tất cả thiết bị); ảnh hưởng đến mọi ứng dụng bên thứ ba hoặc hệ thống

Error Message

Unfortunately, "App" has stopped.
#android#app-stopped#crash#data

Lỗi Gặp Phải

Bạn mở một ứng dụng và thấy hộp thoại:

Unfortunately, "App" has stopped.

Ứng dụng đóng ngay lập tức. Mở lại thì vẫn xuất hiện hộp thoại đó — hoặc ứng dụng crash sau vài giây. Đây không phải ứng dụng bị kẹt trong vòng lặp khởi động lại. Nó có nghĩa là ứng dụng gặp phải một ngoại lệ không thể phục hồi: cache bị hỏng, quyền bị thu hồi, hoặc dữ liệu nội bộ bị lỗi.

Nguyên Nhân

Ngay khi tiến trình ứng dụng bị kết thúc bởi một ngoại lệ chưa được xử lý, Android tắt nó và hiển thị hộp thoại này. Không có cơ chế thử lại hay thoát an toàn. Các nguyên nhân phổ biến nhất:

  • Cache bị hỏng — dữ liệu cache lỗi thời hoặc bị lỗi khiến ứng dụng crash khi tải
  • Dữ liệu ứng dụng bị hỏng — database, SharedPreferences, hoặc các file nội bộ ở trạng thái lỗi
  • Thiếu quyền runtime — Android 6.0+ yêu cầu người dùng cấp quyền tường minh; một quyền bị thu hồi sẽ làm crash bất kỳ ứng dụng nào không xử lý việc từ chối đúng cách
  • Cập nhật không tương thích — bản cập nhật ứng dụng hoặc hệ điều hành gần đây làm hỏng thứ gì đó bên trong ứng dụng
  • Không đủ dung lượng — ứng dụng không thể ghi file tạm và thoát ngay lập tức

Cách Khắc Phục Từng Bước

Bước 1: Xóa Cache Ứng Dụng

Bắt đầu từ đây. Hoàn toàn an toàn — chỉ xóa các file tạm, không ảnh hưởng đến dữ liệu cá nhân của bạn.

  • Vào Cài đặt → Ứng dụng → [Tên ứng dụng] → Bộ nhớ → Xóa Cache

Mở lại ứng dụng. Chạy bình thường? Crash là do cache lỗi. Xong.

Bước 2: Xóa Dữ Liệu Ứng Dụng

Xóa cache không khắc phục được? Đi sâu hơn. Xóa dữ liệu ứng dụng sẽ đưa nó về trạng thái mới cài đặt. Bạn sẽ mất cài đặt lưu cục bộ, phiên đăng nhập và dữ liệu offline — nhưng bất kỳ thứ gì đã đồng bộ lên server vẫn an toàn.

  • Cài đặt → Ứng dụng → [Tên ứng dụng] → Bộ nhớ → Xóa Dữ liệu

Mở lại ứng dụng và thực hiện cài đặt ban đầu.

Bước 3: Kiểm Tra và Cấp Lại Quyền

Một quyền bị thiếu có thể âm thầm gây lỗi. Vào:

  • Cài đặt → Ứng dụng → [Tên ứng dụng] → Quyền

Tìm bất kỳ quyền nào đang ở trạng thái Từ chối hoặc Hỏi mỗi lần và chuyển sang Cho phép. Các quyền thường gặp vấn đề: Bộ nhớ, Danh bạ, Điện thoại, Camera.

Bước 4: Kiểm Tra Dung Lượng Còn Trống

Thiết bị đầy bộ nhớ là nguyên nhân thường gặp. Ứng dụng crash ngay khi không thể ghi file tạm.

  • Cài đặt → Bộ nhớ — cần ít nhất 500 MB trống để hoạt động bình thường

Xóa các ứng dụng không dùng, xóa cache các ứng dụng khác, hoặc chuyển media sang thẻ SD hoặc lưu trữ đám mây.

Bước 5: Gỡ Cài Đặt và Cài Lại

Vẫn crash? Bản thân file APK có thể bị hỏng — điều mà việc xóa dữ liệu không thể sửa được. Cài lại từ đầu thường giải quyết được.

  • Nhấn giữ biểu tượng ứng dụng → Gỡ cài đặt
  • Cài lại từ Google Play Store

Đừng khôi phục từ backup ngay. Hãy để bản cài mới chạy trước và xác nhận crash đã biến mất trước khi đưa dữ liệu cũ trở lại.

Bước 6: Chẩn Đoán với ADB Logcat (Dành Cho Nhà Phát Triển)

Dành cho các nhà phát triển — hoặc những crash cứng đầu vẫn tồn tại sau tất cả các bước trên — ADB logcat sẽ cho thấy chính xác ngoại lệ và số dòng gây ra vấn đề.

Kết nối thiết bị qua USB với USB Debugging đã bật, sau đó chạy:

adb logcat -c
adb logcat *:E | grep -i "your.package.name"

Tái hiện crash. Kết quả đầu ra sẽ chỉ rõ ngoại lệ. Các mẫu thường gặp:

# NullPointerException — uninitialized object
FATAL EXCEPTION: main
java.lang.NullPointerException: Attempt to invoke virtual method on a null object reference

# Permission denied at OS level
java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts

# Database corruption
android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed

Để chỉ lọc các crash nghiêm trọng:

adb logcat AndroidRuntime:E *:S

Trên thiết bị đã root, lấy thư mục dữ liệu của ứng dụng để kiểm tra trực tiếp các file bị hỏng:

adb shell run-as your.package.name ls /data/data/your.package.name/

Bước 7: Quay Lại Phiên Bản Trước

Crash xuất hiện ngay sau khi cập nhật? Hãy quay lại phiên bản cũ:

  • Cài đặt → Ứng dụng → [Tên ứng dụng] → ⋮ (menu) → Gỡ cài đặt bản cập nhật (chỉ dành cho ứng dụng hệ thống)
  • Ứng dụng bên thứ ba: tải APK phiên bản cũ từ nguồn đáng tin cậy và cài thủ công bằng adb install -r app-old.apk

Xác Nhận Đã Khắc Phục

  • Mở ứng dụng — nó phải khởi động mà không có hộp thoại crash
  • Điều hướng đến màn hình trước đây bị crash
  • Thực hiện hành động gây ra crash (tải một mục cụ thể, nhấn một nút, v.v.)
  • Chạy adb logcat AndroidRuntime:E *:S song song để xác nhận không có ngoại lệ mới nào xuất hiện

Mẹo

  • Bỏ qua các ứng dụng diệt task — chúng không ngăn được crash mà còn có thể gây ra crash bằng cách cắt đứt quá trình ghi dữ liệu giữa chừng
  • Kiểm tra cập nhật trên Play Store — mở Play Store → Thư viện → xem ứng dụng có bản cập nhật đang chờ không
  • Thử Chế độ An toàn để loại trừ sự can thiệp của bên thứ ba: nhấn giữ Nguồn → nhấn giữ Tắt nguồn → nhấn Chế độ An toàn. Nếu ứng dụng chạy tốt ở đó, một ứng dụng khác đã cài là thủ phạm
  • Khôi phục cài đặt gốc là biện pháp cuối cùng tuyệt đối — hãy sao lưu mọi thứ trước: adb backup -apk -shared -all -f backup.ab

Related Error Notes