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 đợi. |
| ITEM_UNAVAILABLE | Lỗ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_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 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_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 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_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 | 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_TIMEOUT | Lỗ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_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 đến dịch vụ Google Play Store thông 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, 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_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 đã đượ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 | Đã 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_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ệ. 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_ERROR | Lỗi máy chủ. |
| REQUEST_FAILED | Lỗi này cho biết có sự cố mạng không thể xác định rõ ràng. |
| DECODING_FAILED | Chú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_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 từ dashboard. |
| LOGGING_OUT_UNIDENTIFIED_USER | Adapty.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ỗ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, 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_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 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_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 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.