Lỗi ANR Crash với Unity 6

1. Dấu hiệu

Xem trên Play Console, hoặc trong Android LogCat

  • Lỗi: Native method - com.google.androidgamesdk.GameActivity.onPauseNative

  • Lỗi: Native method - com.google.androidgamesdk.GameActivity.onSurfaceDestroyedNative

2. Nguyên nhân

  • Từ Unity 6 sẽ có 2 loại Activity:

    • UnityPlayerActivity: Vẫn là loại activity cũ từ các phiên bản Unity trước

    • GameActivity: Là loại Activity mới nhất.

  • Trong Manifest mặc đinh ban đầu khi tạo mới project sẽ như sau:

  • Trong Application Entry Point thì mặc định là chọn Game Activity ⇒ Do đó, nếu giữ cầu hình mặc định trong Manifest thì khi chạy runtime sẽ gây lỗi và cần phải comment code chỉ giữ lại loại Activity tương ứng với setting trong Application Entry Point.

3. Cách fix lỗi

  • Bước 1: Vào Project SettingsAndroid Other SettingsApplication Entry PointTích chọn Activity

  • Bước 2: Vào Manifest Comment dòng code như hình

4. Mở rộng

  • Nên dùng Acitity vì hiện tại đa số các thư viện bên thứ 3 như Firebase, Facebook, Admob ... chưa hỗ trợ, hoặc phù hợp với GameActivity nên rất dễ gây xung đột và lỗi Crash ANR

Last updated