2.4.0-beta8
0.55.4
Android
Janji pembelian ditolak dengan E_USER_CANCELLED, "Cancelled."
Aplikasi mogok:
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)
Perangkat nyata
android.test.canceled
onPurchasesUpdated
dipanggil, NPE dilemparkan pada baris 436 Purchase purchase = purchases.get(0);
karena purchases
adalah @Nullable
dan null
sementara responseCode
adalah 0.Terima kasih atas masalah solusinya. @johnmartel Saya harap Anda memberi kami PR
jika Anda sudah tahu bagaimana memecahkan masalah.
@hyochan Saya sedang menangani masalah ini sekarang, saya akan mengirimkan PR secepat mungkin. Masalahnya adalah lib sangat kurang tes dan sulit untuk memastikan saya tidak melanggar apa pun.
@Jmartel Ya. Saya selalu ingin menerapkan beberapa modul pengujian tetapi saat ini, saya selalu kehabisan waktu 😿. Kami harus memeriksa sendiri runtime sebelum merilis ..
Bagaimana kalau hanya memeriksa apakah purchases
adalah null
seperti itu?
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);
// ...
Halo, sepertinya tidak ada aktivitas terkait masalah ini akhir-akhir ini. Apakah masalah sudah diperbaiki atau masih membutuhkan perhatian masyarakat? Masalah ini mungkin ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Untuk Diskusi" atau "Edisi pertama yang baik" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.
Komentar yang paling membantu
@Jmartel Ya. Saya selalu ingin menerapkan beberapa modul pengujian tetapi saat ini, saya selalu kehabisan waktu 😿. Kami harus memeriksa sendiri runtime sebelum merilis ..