Cách sửa lỗi 'Can't install app' trên Android (Ngay cả khi còn dung lượng)

intermediate📱 Android2026-04-20| Android OS (Mọi phiên bản), Google Play Store, Android Debug Bridge (ADB)

Error Message

Can't install app. There isn't enough storage space.
#android#khắc-phục-lỗi#adb#quản-lý-bộ-nhớ

Vấn đề: Giới hạn dung lượng lưu trữ "ảo"

Bạn định cài đặt một ứng dụng 50MB, kiểm tra cài đặt và thấy còn trống 2GB. Tuy nhiên, Play Store lại chặn đứng bạn bằng lỗi 'không đủ dung lượng'. Đây là một lỗi đặc thù kinh điển của Android khiến cả người dùng lẫn nhà phát triển đều phải đau đầu.

Can't install app. There isn't enough storage space.

Điều này xảy ra vì Android Package Manager hoạt động theo cơ chế thận trọng. Nó không chỉ nhìn vào kích thước của tệp APK. Nó còn tính toán không gian cần thiết để giải nén, giải nén thư viện và biên dịch Ahead-of-Time (AOT). Đối với một nhà phát triển, một bản build debug 100MB thực tế có thể yêu cầu 500MB 'không gian làm việc' trước khi hệ thống cảm thấy đủ an toàn để tiến hành.

Phép tính ẩn đằng sau việc cài đặt trên Android

Android thường yêu cầu một vùng đệm an toàn từ 500MB đến 1GB dung lượng trống để giữ cho hệ điều hành không bị giật lag hoặc treo. Nếu dung lượng trống của bạn giảm xuống dưới 10% tổng dung lượng, hệ thống thường sẽ kích hoạt lệnh khóa tạm thời đối với các cài đặt mới. Đây là những gì diễn ra bên dưới hệ thống trong quá trình cài đặt:

  • Hệ thống tải xuống tệp nén .apk hoặc .aab.
  • Nó giải nén các thư viện gốc (tệp .so) cho kiến trúc CPU cụ thể của bạn.
  • ART (Android Runtime) tạo ra các tệp .odex hoặc .vdex trong /data/dalvik-cache để tăng tốc ứng dụng.
  • Tệp APK gốc được lưu trữ trong /data/app.

Nếu bạn còn trống 600MB và cố gắng cài đặt một trò chơi 150MB, chi phí tài nguyên của các tệp tạm thời này có thể sẽ vượt quá dung lượng hiện có, khiến trình cài đặt bị hủy bỏ.

Các bước khắc phục chi tiết

1. Xóa bộ nhớ đệm của Google Play Store

Play Store vốn nổi tiếng với việc tích trữ siêu dữ liệu (metadata). Cơ sở dữ liệu nội bộ của nó có thể dễ dàng phình lên tới 300MB hoặc hơn, đôi khi báo cáo sai số liệu lưu trữ cho hệ điều hành.

  • Đi tới Settings > Apps > See all apps.
  • Chọn Google Play Store.
  • Nhấn vào Storage & cache.
  • Chọn Clear Cache, sau đó chọn Clear Storage.
  • Lặp lại quy trình này cho Google Play Services.

Đừng lo lắng—việc này sẽ không xóa các ứng dụng đã cài đặt của bạn. Nó chỉ đơn giản là buộc Play Store phải làm mới cơ sở dữ liệu và quét lại dung lượng lưu trữ thực tế hiện có của bạn.

2. Tìm kiếm các tác nhân "ngốn" dung lượng ẩn qua ADB

Các menu cài đặt tiêu chuẩn thường không báo cáo chính xác dung lượng của bạn đã đi đâu. Nếu bạn có sẵn máy tính, hãy sử dụng Android Debug Bridge (ADB) để biết sự thật. Kết nối thiết bị của bạn và chạy:

adb shell df -h

Hãy tập trung vào phân vùng /data. Nếu mức sử dụng ở mức 95% hoặc cao hơn, hệ thống sẽ chặn hầu hết các cài đặt. Để tìm 10 thư mục dữ liệu ứng dụng lớn nhất, hãy chạy lệnh sau:

adb shell du -sh /data/data/* | sort -rh | head -n 10

Bạn có thể phát hiện ra rằng một ứng dụng mạng xã hội hoặc trình duyệt đang chiếm dụng 4GB video đệm hoặc các tệp cơ sở dữ liệu cục bộ mà menu 'Storage' không hiển thị rõ.

3. Ép buộc cài đặt qua ADB

Đôi khi giao diện người dùng của Play Store chính là điểm nghẽn. Nếu bạn có tệp APK, bạn có thể bỏ qua các bước kiểm tra thận trọng của Play Store bằng cách cài đặt trực tiếp thông qua terminal.

adb install -r path/to/your/app.apk

Cờ -r yêu cầu hệ thống cài đặt lại hoặc thay thế ứng dụng trong khi vẫn giữ nguyên dữ liệu của ứng dụng đó. Nếu thất bại, ADB sẽ trả về một lỗi cụ thể như INSTALL_FAILED_INSUFFICIENT_STORAGE. Điều này xác nhận vấn đề nằm ở giới hạn phân vùng vật lý chứ không phải lỗi phần mềm.

4. Dọn dẹp danh mục 'Khác' (Other)

Trên các thiết bị của Samsung hoặc Xiaomi, danh mục lưu trữ 'Khác' có thể tăng lên vô hạn. Danh mục này thường chứa các bản ghi hệ thống và các tệp phương tiện bị lãng quên. Ví dụ, thư mục .thumbnails trong thư mục máy ảnh của bạn có thể dễ dàng đạt tới 1GB hoặc hơn nếu bạn có hàng nghìn bức ảnh.

Để xóa các ảnh thu nhỏ này ngay lập tức qua shell:

adb shell rm -rf /sdcard/DCIM/.thumbnails/*

Ngoài ra, hãy kiểm tra các ứng dụng như Telegram hoặc WhatsApp. Chúng thường lưu trữ tệp phương tiện trong các thư mục riêng tư thay vì Thư viện công cộng, khiến các công cụ dọn dẹp tiêu chuẩn không tìm thấy.

5. Loại bỏ dữ liệu ứng dụng "ma"

Khi bạn gỡ cài đặt một ứng dụng, Android đáng lẽ phải xóa các tệp của ứng dụng đó. Tuy nhiên, nếu bạn sử dụng nhiều cấu hình người dùng hoặc Cấu hình công việc (Work Profiles), ứng dụng có thể vẫn được cài đặt cho 'User 0' trong khi bạn đang ở 'User 10'. Với tư cách là nhà phát triển, hãy luôn sử dụng lệnh gỡ cài đặt hoàn toàn để đảm bảo hệ thống sạch sẽ:

adb uninstall <package.name>

Xác minh kết quả

Sau khi dọn dẹp, hãy thực hiện các bước kiểm tra nhanh sau để đảm bảo thiết bị của bạn ở trạng thái tốt:

  • Kiểm tra Settings > Storage. Hãy cố gắng duy trì ít nhất 1.5GB dung lượng trống; đây là 'vùng an toàn' cho hầu hết các phiên bản Android hiện đại.
  • Thử cài đặt một ứng dụng tiện ích nhỏ (như ứng dụng chuyển đổi đơn vị 2MB). Nếu thành công, các ngưỡng giới hạn lưu trữ của bạn đã được giải tỏa.
  • Chạy adb shell dumpsys package <your.package.name> | grep codePath để xác nhận ứng dụng mục tiêu của bạn được đặt đúng vị trí trong phân vùng hệ thống.

Các phương pháp hay nhất dành cho nhà phát triển

  • Sử dụng App Bundles (.aab): Điều này cho phép Google Play chỉ phân phối mã và tài nguyên cần thiết cho một thiết bị cụ thể, thường giúp giảm kích thước cài đặt từ 20-30%.
  • Lưu bộ nhớ đệm thông minh: Sử dụng getCacheDir() cho các tệp tạm thời. Android có thể tự động dọn dẹp thư mục này khi hệ thống sắp hết dung lượng, không giống như getFilesDir().
  • Kiểm soát sự phình to của APK: Sử dụng APK Analyzer trong Android Studio để tìm các tài nguyên có kích thước quá lớn. Cân nhắc chuyển các video hoặc texture độ phân giải cao có dung lượng lớn sang hình thức tải xuống theo yêu cầu bằng Play Asset Delivery.

Related Error Notes