Xử lý lỗi trong Android SDK

Mọi lỗi được trả về bởi SDK đều có dạng AdaptyError.

Tip

Bật verbose logs trước khi debug. Hầu hết các AdaptyError đều bọc một lỗi bên dưới từ Play Billing, mạng, hoặc backend. Khi bật verbose logs (Adapty.logLevel = AdaptyLogLevel.VERBOSE — xem Logging), lỗi được bọc đó sẽ được in ra console, thường cho biết nguyên nhân thực sự.

Important

Nếu các giải pháp này không khắc phục được vấn đề của bạn, hãy xem Các vấn đề khác để biết các bước cần thực hiện trước khi liên hệ hỗ trợ, giúp chúng tôi hỗ trợ bạn hiệu quả hơn.

LỗiGiải pháp
UNKNOWNLỗi này cho biết đã xảy ra một lỗi không xác định hoặc không mong đợi.
ITEM_UNAVAILABLELỗi này thường xảy ra ở giai đoạn kiểm thử. Nguyên nhân có thể do các sản phẩm chưa có trên bản production hoặc người dùng không thuộc nhóm Testers trong Google Play.
ADAPTY_NOT_INITIALIZEDAdapty SDK chưa được kích hoạt.
Thường gặp nhất khi màn hình splash hoặc một hook UI sớm gọi các phương thức Adapty trước khi Adapty.activate hoàn tất. Triệu chứng này không ổn định và có thể không tái hiện trên máy ảo vì thời gian thực thi trên thiết bị thật khác. Hãy đợi Adapty.activate hoàn tất trước khi gọi bất kỳ SDK call nào khác. Xem Thứ tự gọi trong Android SDK để biết toàn bộ trình tự. Bạn cũng cần cấu hình Adapty SDK đúng cách bằng phương thức Adapty.activate.
PROFILE_WAS_CHANGEDHồ sơ người dùng đã bị thay đổi trong quá trình thực hiện thao tác.
Điều này xảy ra khi một phương thức được gọi trong khi Adapty.identify vẫn đang chạy — lệnh gọi đang thực thi sẽ nhắm vào hồ sơ sắp bị hoán đổi và SDK từ chối nó. Hãy đợi Adapty.identify hoàn tất trước khi gọi các SDK call khác. Xem Thứ tự gọi trong Android SDK.
PRODUCT_NOT_FOUNDLỗi này cho biết sản phẩm được yêu cầu mua không có sẵn trong cửa hàng.

CURRENT_SUBSCRIPTION_TO_UPDATE

_NOT_FOUND_IN_HISTORY

Không tìm thấy gói đăng ký gốc cần được thay thế trong các gói đăng ký đang hoạt động.
BILLING_SERVICE_TIMEOUTLỗi này cho biết yêu cầu đã đạt đến thời gian chờ tối đa trước khi Google Play có thể phản hồi. Nguyên nhân có thể do chậm trễ trong quá trình thực thi hành động được yêu cầu bởi lệnh gọi Play Billing Library.
FEATURE_NOT_SUPPORTEDTính năng được yêu cầu không được Play Store hỗ trợ trên thiết bị hiện tại.
BILLING_SERVICE_DISCONNECTEDLỗi này cho biết kết nối của ứng dụng client đến dịch vụ Google Play Store thông qua BillingClient đã bị ngắt.
BILLING_SERVICE_UNAVAILABLELỗi này cho biết dịch vụ Google Play Billing hiện không khả dụng. Trong hầu hết các trường hợp, nguyên nhân là do sự cố kết nối mạng ở đâu đó giữa thiết bị client và dịch vụ Google Play Billing.
BILLING_UNAVAILABLE

Lỗi này cho biết đã xảy ra sự cố thanh toán trong quá trình mua hàng. Các nguyên nhân có thể bao gồm:

1. Ứng dụng Play Store trên thiết bị của người dùng bị thiếu hoặc đã lỗi thời.

2. Người dùng đang ở quốc gia không được hỗ trợ.

3. Người dùng thuộc tài khoản doanh nghiệp mà quản trị viên đã tắt tính năng mua hàng.

4. Google Play không thể tính phí phương thức thanh toán của người dùng (ví dụ: thẻ tín dụng hết hạn).

5. Người dùng chưa đăng nhập vào ứng dụng Play Store.

DEVELOPER_ERRORLỗi này cho biết bạn đang sử dụng API không đúng cách.
BILLING_ERRORLỗi này cho biết có sự cố nội bộ với chính Google Play.
ITEM_ALREADY_OWNEDSản phẩm đã được mua trước đó.
ITEM_NOT_OWNEDLỗi này cho biết thao tác được yêu cầu trên mục hàng thất bại vì người dùng không sở hữu nó.
BILLING_NETWORK_ERRORLỗi này cho biết đã xảy ra sự cố với kết nối mạng giữa thiết bị và hệ thống Play.
NO_PRODUCT_IDS_FOUND

Lỗi này cho biết không có sản phẩm nào trong paywall khả dụng trong cửa hàng.

Nếu gặp lỗi này, hãy thực hiện các bước sau để khắc phục:

  1. Kiểm tra xem tất cả các sản phẩm đã được thêm vào Adapty Dashboard chưa.
  2. Đảm bảo rằng Package name của ứng dụng khớp với tên trong Google Play Console.
  3. Xác minh rằng các mã định danh sản phẩm từ app store khớp với những gì bạn đã thêm vào Dashboard. Lưu ý rằng các mã định danh không nên chứa Bundle ID, trừ khi nó đã được bao gồm trong cửa hàng.
  4. Xác nhận rằng trạng thái thanh toán của ứng dụng là Active trong cài đặt thuế của Google. Đảm bảo thông tin thuế của bạn được cập nhật và các chứng chỉ còn hiệu lực.
  5. Kiểm tra xem tài khoản ngân hàng đã được liên kết với ứng dụng chưa để ứng dụng đủ điều kiện kiếm tiền.
  6. Kiểm tra xem các sản phẩm có khả dụng ở khu vực của bạn không.
  7. Đảm bảo ứng dụng của bạn đang ở một trong các track kiểm thử. Track Internal testing là lựa chọn dễ nhất vì không yêu cầu xét duyệt và ẩn ứng dụng khỏi khách hàng.
NO_PURCHASES_TO_RESTOREĐã ngừng hỗ trợ trong Adapty Android SDK 4.0.2: restorePurchases() không còn trả về lỗi này nữa. Khi không có gì để khôi phục, phương thức sẽ hoàn tất thành công với hồ sơ người dùng hiện tại, vì vậy hãy kiểm tra trạng thái mức độ truy cập trong đó. Trong các phiên bản SDK cũ hơn, lỗi này cho biết Google Play không tìm thấy giao dịch mua để khôi phục.
AUTHENTICATION_ERRORBạn cần cấu hình Adapty SDK đúng cách bằng phương thức Adapty.activate.
BAD_REQUESTYêu cầu không hợp lệ.
Hãy đảm bảo bạn đã hoàn thành tất cả các bước cần thiết để tích hợp với Google Play.
SERVER_ERRORLỗi máy chủ.
REQUEST_FAILEDLỗi này cho biết có sự cố mạng không thể xác định rõ ràng.
DECODING_FAILEDChúng tôi không thể giải mã phản hồi.
Hãy xem lại code của bạn và đảm bảo rằng các tham số bạn gửi là hợp lệ. Ví dụ, lỗi này có thể cho biết bạn đang sử dụng API key không hợp lệ.
ANALYTICS_DISABLEDChúng tôi không thể xử lý các sự kiện analytics vì bạn đã tắt tính năng này.
WRONG_PARAMETER

Lỗi này cho biết một số tham số của bạn không đúng: để trống khi không được phép để trống, sai kiểu dữ liệu, v.v.

SDK cũng trả về lỗi này khi không thể đọc file paywall dự phòng cục bộ — thường là do phiên bản file không khớp với phiên bản SDK. Hãy tải file mới từ dashboard.

LOGGING_OUT_UNIDENTIFIED_USERAdapty.logout() đã được gọi cho người dùng chưa bao giờ được xác định danh tính. Chỉ gọi phương thức này sau Adapty.identify.

Lỗi hiển thị flow

Adapty SDK 4.0 trở lên báo cáo các lỗi này thông qua onError trong AdaptyFlowEventListener của bạn thay vì trả về chúng từ một lần gọi phương thức. Xem Xử lý sự kiện trong Android SDK.

LỗiGiải pháp
WRONG_ASSET_TYPEMột phần tử hình ảnh trong flow trỏ đến một asset là màu sắc hoặc gradient fill, nên SDK hiển thị placeholder thay thế. Hãy gán một asset hình ảnh cho phần tử đó trong Flow Builder.
JS_EXCEPTIONJavaScript của flow đã ném ra một exception. Đọc nội dung exception trong thông báo lỗi.
NAVIGATOR_NOT_FOUNDMột hành động mở màn hình chỉ định một navigator không có trong cấu hình view của flow, và flow không có navigator default để dự phòng. Hãy kiểm tra lại target của hành động trong Flow Builder.
INVALID_ACTION_URLMột hành động mở URL tham chiếu đến một string ID không phân giải được thành URL. Hãy đặt một URL hợp lệ cho hành động đó trong Flow Builder.

Các vấn đề khác

Nếu bạn vẫn chưa tìm được giải pháp, các bước tiếp theo có thể là:

  • Nâng cấp SDK lên phiên bản mới nhất: Chúng tôi luôn khuyến nghị nâng cấp lên các phiên bản SDK mới nhất vì chúng ổn định hơn và bao gồm các bản sửa lỗi đã biết.
  • Liên hệ đội ngũ hỗ trợ hoặc nhờ trợ giúp từ các nhà phát triển khác trong diễn đàn hỗ trợ.
  • Liên hệ đội ngũ hỗ trợ qua support@adapty.io hoặc qua chat: Nếu bạn chưa sẵn sàng nâng cấp SDK hoặc việc nâng cấp không giúp được, hãy liên hệ đội ngũ hỗ trợ của chúng tôi. Lưu ý rằng vấn đề của bạn sẽ được giải quyết nhanh hơn nếu bạn bật verbose logging và chia sẻ logs với đội ngũ. Bạn cũng có thể đính kèm các đoạn code liên quan.