Trò chơi đã bị lỗi vui lòng kết nối lại

Trang này mô tả cách khắc phục những vấn đề mà bạn có thể gặp phải trong quá trình phát triển trò chơi Android với Dịch vụ trò chơi của Google Play.

Ghi nhật ký

Để khắc phục sự cố xảy ra với trò chơi, bạn có thể bật tính năng ghi nhật ký chi tiết trên thiết bị bằng lệnh

adb logcat

1. Sau đó, bạn có thể xem thông điệp nhật ký của Dịch vụ trò chơi của Google Play bằng logcat.

Bật tính năng ghi nhật ký

Để bật tính năng ghi nhật ký trên thiết bị thử nghiệm, hãy làm như sau:

  1. Kết nối thiết bị với máy đã cài đặt SDK Android.
  2. Mở terminal và chạy lệnh này: adb shell setprop log.tag.Games VERBOSE
  3. Khởi chạy trò chơi trên thiết bị và tái tạo vấn đề mà bạn đang cố gắng gỡ lỗi.
  4. Xem nhật ký: adb logcat

Tắt tính năng ghi nhật ký

Để tắt tính năng ghi nhật ký chi tiết cho Dịch vụ trò chơi của Play trên thiết bị của bạn, đồng thời quay về hành vi ghi nhật ký ban đầu, hãy chạy lệnh sau:

adb shell setprop log.tag.Games INFO

Không thể đăng nhập

Nếu bạn không thể đăng nhập người chơi vào trò chơi của mình, trước tiên, hãy đảm bảo bạn đã làm theo hướng dẫn để tạo ID ứng dụng khách và định cấu hình các dịch vụ trò chơi. Nếu bạn vẫn gặp phải lỗi đăng nhập, vui lòng kiểm tra các mục sau nhằm đảm bảo trò chơi của bạn được thiết lập đúng cách.

Kiểm tra thẻ siêu dữ liệu

adb logcat

2 của bạn phải chứa một thẻ siêu dữ liệu trò chơi. Để xác minh các thẻ siêu dữ liệu của bạn đã được thiết lập đúng cách:

  1. Mở

    adb logcat 2 và xác nhận rằng thẻ đó chứa thẻ adb logcat 4 như minh hoạ dưới đây:

    android:value="@string/app_id" />
  2. Tìm định nghĩa của tài nguyên adb logcat 5. Thường được xác định trong tệp XML nằm ở thư mục adb logcat 6, ví dụ: adb logcat 7 hoặc adb logcat 8.
  3. Xác minh giá trị của tài nguyên

    adb logcat 5 khớp với mã dạng số của ứng dụng. Giá trị của tài nguyên này chỉ được chứa chữ số. Ví dụ:

    123456789012

Kiểm tra tên gói

Tên gói của trò chơi phải khớp với tên gói trên ID ứng dụng khách. Cách xác minh tên gói:

  1. Mở adb logcat 2 và xác nhận rằng tên gói cho trò chơi của bạn chính xác. Tên gói là giá trị của thuộc tính adb shell setprop log.tag.Games INFO 1 trong thẻ adb shell setprop log.tag.Games INFO 2.
  2. Xác minh tên gói bạn đã cung cấp khi tạo ID ứng dụng khách. Để xác minh tên gói trong Google Play Console, vui lòng chuyển đến Play Console và nhấp vào mục tương ứng với trò chơi của bạn.
  3. Chuyển đến thẻ Ứng dụng được liên kết và kiểm tra danh sách ID ứng dụng khách. Bạn sẽ thấy một ứng dụng liên kết với Android trong danh sách này, với tên gói khớp với tên gói trong adb logcat 2 của bạn. Nếu thông tin không khớp, hãy tạo một ID ứng dụng khách mới với tên gói chính xác và thử đăng nhập lại.

Kiểm tra dấu vân tay chứng chỉ

Chứng chỉ mà bạn đang ký trong trò chơi phải khớp với dấu vân tay chứng chỉ được liên kết với ID ứng dụng khách của bạn. Để xác minh điều này, trước tiên hãy kiểm tra vân tay số SHA1 của chứng chỉ như sau:

  1. Tìm tệp chứng chỉ của bạn và lấy vân tay SHA1. Để có được vân tay số SHA1, hãy chạy lệnh sau:

    keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v

  2. Ghi lại chuỗi các chữ số thập lục phân có nhãn adb shell setprop log.tag.Games INFO 4 ở đầu ra. Đó là vân tay số cho chứng chỉ của bạn.

Tiếp theo, hãy kiểm tra để đảm bảo công cụ xây dựng của bạn đang sử dụng chứng chỉ này:

  1. Tạo APK của trò chơi từ công cụ xây dựng và ký bằng chứng chỉ mà bạn muốn. Sao chép APK đã tạo vào thư mục tạm thời.
  2. Trong thư mục tạm thời, hãy chạy lệnh sau để giải nén APK của bạn.

    unzip YourGame.apk

  3. Tạo khoá riêng tư bằng cách sử dụng tệp chứng chỉ RSA:

    keytool -printcert -file META-INF/CERT.RSA

    Ngoài ra, bạn còn có thể tạo khoá riêng tư bằng cách sử dụng tệp chứng chỉ DSA:

    keytool -printcert -file META-INF/CERT.DSA

  4. Vui lòng lưu ý chuỗi chữ số thập lục phân trên dòng có nhãn adb shell setprop log.tag.Games INFO
  5. Chuỗi chữ số này phải khớp với dấu vân tay chứng chỉ ở bước trước. Nếu chuỗi chữ số này không khớp, thì hệ thống hoặc công cụ xây dựng của bạn chưa được định cấu hình để ký ứng dụng bằng chứng chỉ của bạn. Trong trường hợp này, vui lòng tham khảo tài liệu về môi trường tạo bản dựng để xác định cách định cấu hình đúng cách và thử đăng nhập lại.

Tiếp theo, hãy kiểm tra xem dấu vân tay chứng chỉ có khớp với vân tay số đã định cấu hình trong ID ứng dụng khách của bạn hay không. Để thực hiện việc này:

  1. Mở Play Console và chuyển đến trò chơi của bạn.
  2. Trên trang Chi tiết trò chơi, hãy cuộn di chuyển xuống dưới cùng rồi nhấp vào đường liên kết đến dự án Google Cloud Platform đã liên kết.
  3. Chọn dự án của bạn.
  4. Trong thanh bên ở phía bên trái, hãy chọn APIs & auth (API và xác thực). Hãy đảm bảo trạng thái của API Dịch vụ trò chơi của Google Play đang BẬT trong danh sách API bạn thấy.
  5. Trong thanh bên ở phía bên trái, hãy chọn Registered apps (Ứng dụng đã đăng ký).
  6. Mở rộng phần ID ứng dụng khách OAuth 2.0 và ghi lại vân tay số của chứng chỉ (SHA1).

Nếu vân tay này không khớp với vân tay số của chứng chỉ từ các bước trước, bạn phải tạo một ID ứng dụng khách mới dấu vân tay chứng chỉ chính xác. Bạn phải tạo ID ứng dụng khách mới trong Play Console, chứ không phải trong dự án Google Cloud Platform.

Kiểm tra nhằm đảm bảo bạn đã bật các tài khoản kiểm thử

Trước khi phát hành một trò chơi, bạn phải thiết lập tài khoản tạo trò chơi trong Play Console làm người kiểm thử. Để kiểm tra nhằm đảm bảo bạn đã định cấu hình đúng cách:

  1. Mở Play Console và chuyển đến trò chơi của bạn.
  2. Mở thẻ Kiểm thử.
  3. Kiểm tra để đảm bảo tài khoản mà bạn đang muốn đăng nhập có trong danh sách người kiểm thử.

Nếu tài khoản mà bạn đang muốn đăng nhập không có trong danh sách, hãy thêm vào và đợi vài phút rồi thử đăng nhập lại.

Sự cố về Proguard

Nếu bạn đang sử dụng Proguard và gặp lỗi trên APK làm rối mã nguồn, hãy kiểm tra cấp độ API mục tiêu trên

adb logcat

2 của bạn. Hãy đảm bảo bạn đặt mức từ 17 trở lên.

Các nguyên nhân khác của sự cố thiết lập

Kiểm tra các nguyên nhân phổ biến khác:

  • Nếu đã phát hành trò chơi của mình, hãy kiểm tra để đảm bảo các chế độ cài đặt cho trò chơi cũng được phát hành (bạn cũng có thể phát hành ứng dụng mà không cần phát hành chế độ cài đặt cho trò chơi). Để làm việc này, hãy mở Google Play Console, sau đó chuyển đến ứng dụng của bạn rồi đánh dấu vào hộp bên cạnh tên trò chơi để cho biết trò chơi đã được phát hành. Nếu trò chơi hiển thị một trạng thái khác, chẳng hạn như "Sẵn sàng để xuất bản" hoặc "Sẵn sàng để thử nghiệm", hãy nhấp vào hộp và chọn mục Xuất bản trò chơi.
  • Nếu bạn không thể phát hành trò chơi, hãy kiểm tra để chắc chắn một trong các ID ứng dụng khách có bật tuỳ chọn Ứng dụng này dành cho các lượt cài đặt mới.

Trình nghe ẩn danh

Không được dùng trình nghe ẩn danh. Trình nghe ẩn danh là các phương thức triển khai giao diện trình nghe được xác định nội tuyến, như minh hoạ bên dưới.

    ImageManager im = ...;
    // Anonymous listener -- dangerous:
    im.loadImage(new ImageManager.OnImageLoadedListener() {
        @Override
        public void onImageLoaded(Uri uri, Drawable drawable) {
            // ...code...
        }
    }

Trình nghe ẩn danh không đáng tin cậy vì SDK Play Games duy trì chúng dưới dạng tệp tham chiếu yếu, có nghĩa là chúng có thể bị trình thu gom rác thu hồi lại trước khi được gọi. Thay vào đó, bạn nên triển khai trình nghe bằng cách sử dụng đối tượng cố định (persistent object), chẳng hạn như

adb shell setprop log.tag.Games INFO

7.