2.4.0-beta8
0,55,4
Android
Обещание покупки отклонено с E_USER_CANCELLED, "Cancelled."
Приложение вылетает:
01-28 11:21:58.177 2773-2919/ D/RNIapModule: buyItemByType (type: inapp, sku: android.test.canceled, oldSku: null, prorationMode: 0) responseCode: 0(OK)
01-28 11:22:03.509 2773-2919/ D/RNIapModule: Purchase Updated Listener
01-28 11:22:03.509 2773-2919/ D/RNIapModule: responseCode: 0
--------- beginning of crash
01-28 11:22:03.510 2773-2919/ E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
Process: , PID: 2773
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference
at com.dooboolab.RNIap.RNIapModule$11.onPurchasesUpdated(RNIapModule.java:436)
at com.android.billingclient.api.BillingClientImpl$1.onReceiveResult(BillingClientImpl.java:151)
at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192)
at java.lang.Thread.run(Thread.java:764)
Настоящее устройство
android.test.canceled
onPurchasesUpdated
, NPE выдается в строке 436 Purchase purchase = purchases.get(0);
потому что purchases
- это @Nullable
и null
а responseCode
равно 0.Спасибо за проблему с решением. @johnmartel Надеюсь, вы дадите нам PR
если вы уже знаете, как решить эту проблему.
@hyochan Я работаю над проблемой прямо сейчас, я
@johnmartel Ага. Я всегда хотел реализовать несколько тестовых модулей, но в настоящее время у меня всегда не хватает времени 😿. Мы должны сами проверить время выполнения перед выпуском ..
Как насчет того, чтобы просто проверить, соответствуют ли purchases
null
так?
PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
<strong i="8">@Override</strong>
public void onPurchasesUpdated(int responseCode, <strong i="9">@Nullable</strong> List<Purchase> purchases) {
Log.d(TAG, "Purchase Updated Listener");
Log.d(TAG, "responseCode: " + responseCode);
if (responseCode != BillingClient.BillingResponse.OK) {
rejectPromisesWithBillingError(PROMISE_BUY_ITEM, responseCode);
return;
}
+ if (purchases == null) {
+ rejectPromisesWithBillingError(PROMISE_BUY_ITEM , responseCode);
+ return;
+ }
Purchase purchase = purchases.get(0);
// ...
Привет, похоже, в последнее время не было никакой активности по этой проблеме. Проблема устранена или все еще требует внимания сообщества? Эта проблема может быть закрыта, если больше не будет никаких действий. Вы также можете пометить этот вопрос как «Для обсуждения» или «Хороший первый выпуск», и я оставлю его открытым. Спасибо за ваш вклад.
Самый полезный комментарий
@johnmartel Ага. Я всегда хотел реализовать несколько тестовых модулей, но в настоящее время у меня всегда не хватает времени 😿. Мы должны сами проверить время выполнения перед выпуском ..