Xử lý lỗi trong Android SDK
Mọi lỗi được trả về bởi SDK đều có dạng AdaptyError.
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ự.
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ỗi | Giải pháp |
|---|---|
| UNKNOWN | Lỗi này cho biết đã xảy ra một lỗi không xác định hoặc không mong muốn. |
| ITEM_UNAVAILABLE | Lỗi này thường xảy ra trong giai đoạn kiểm thử. Nguyên nhân có thể là các sản phẩm chưa có trên môi trường production hoặc người dùng không thuộc nhóm Testers trong Google Play. |
| ADAPTY_NOT_INITIALIZED | Adapty 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 thành. Triệu chứng này không ổn định và có thể không tái hiện trên emulator vì thời điểm thực thi trên thiết bị thật khác. Hãy chờ 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_CHANGED | Hồ 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 xử lý sẽ rơi vào một hồ sơ sắp bị thay thế và SDK từ chối nó. Hãy chờ 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_FOUND | Lỗ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 | Gói đăng ký gốc cần được thay thế không tìm thấy trong các gói đăng ký đang hoạt động. |
| BILLING_SERVICE_TIMEOUT | Lỗi này cho biết yêu cầu đã hết thời gian chờ tối đa trước khi Google Play có thể phản hồi. Nguyên nhân có thể là 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_SUPPORTED | Tí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_DISCONNECTED | Lỗi này cho biết kết nối của ứng dụng client tới dịch vụ Google Play Store qua BillingClient đã bị ngắt. |
| BILLING_SERVICE_UNAVAILABLE | Lỗ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, đây là do sự cố kết nối mạng ở đâu đó giữa thiết bị client và các 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ị người dùng bị thiếu hoặc đã lỗi thời. 2. Người dùng ở 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_ERROR | Lỗi này cho biết bạn đang sử dụng API không đúng cách. |
| BILLING_ERROR | Lỗi này cho biết có sự cố nội bộ với chính Google Play. |
| ITEM_ALREADY_OWNED | Sản phẩm này đã được mua trước đó. |
| ITEM_NOT_OWNED | Lỗ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_ERROR | Lỗ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:
|
| NO_PURCHASES_TO_RESTORE | Đã deprecated trong Adapty Android SDK 3.17.3 và 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 hoàn thành 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 cần khôi phục. |
| AUTHENTICATION_ERROR | Bạn cần cấu hình Adapty SDK đúng cách bằng phương thức Adapty.activate. |
| BAD_REQUEST | Yêu cầu không hợp lệ. Đả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_ERROR | Lỗi máy chủ. |
| REQUEST_FAILED | Lỗi này cho biết đã xảy ra sự cố mạng không thể xác định chính xác. |
| DECODING_FAILED | Chúng tôi không thể giải mã phản hồi. 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_DISABLED | Chú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 về từ dashboard. |
| LOGGING_OUT_UNIDENTIFIED_USER | Adapty.logout() được gọi cho người dùng chưa từng được xác định. Chỉ gọi nó sau khi đã dùng 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ỗi | Giải pháp |
|---|---|
| WRONG_ASSET_TYPE | Một phần tử hình ảnh trong flow trỏ đến một asset là màu sắc hoặc gradient fill, do đó SDK hiển thị placeholder thay thế. Hãy gán một asset hình ảnh cho phần tử đó trong Flow & Paywall Builder. |
| JS_EXCEPTION | JavaScript của flow đã ném ra một exception. Đọc nội dung exception trong thông báo lỗi. |
| NAVIGATOR_NOT_FOUND | Một hành động mở màn hình chỉ định một navigator không tồn tại 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 & Paywall Builder. |
| INVALID_ACTION_URL | Mộ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 URL hợp lệ cho hành động đó trong Flow & Paywall 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.