2.4.0-beta8
0,55,4
Android
Kaufversprechen wird mit E_USER_CANCELLED, "Cancelled."
abgelehnt
App stürzt ab:
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)
Echtes Gerät
android.test.canceled
onPurchasesUpdated
aufgerufen wird, wird eine NPE in Zeile 436 Purchase purchase = purchases.get(0);
geworfen, weil purchases
@Nullable
und null
während responseCode
ist 0.Vielen Dank für das Problem mit der Lösung. @johnmartel Ich hoffe, Sie geben uns ein PR
wenn Sie bereits wissen, wie Sie das Problem lösen können.
@hyochan Ich arbeite gerade an dem Problem. Ich werde so bald wie möglich eine PR einreichen. Das Problem ist, dass es in der Bibliothek an Tests mangelt und es schwer ist, sicher zu sein, dass ich nichts anderes kaputt mache.
@ Johnmartel Ja. Ich möchte immer einige Testmodule implementieren, aber momentan läuft mir immer die Zeit davon 😿. Wir müssen die Laufzeit selbst überprüfen, bevor wir sie veröffentlichen.
Wie wäre es einfach zu überprüfen, ob die purchases
null
so sind?
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);
// ...
Hey, es sieht so aus, als ob in letzter Zeit keine Aktivitäten zu diesem Thema stattgefunden haben. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weitere Aktivität auftritt. Sie können diese Ausgabe auch als "Zur Diskussion" oder "Gute erste Ausgabe" bezeichnen, und ich werde sie offen lassen. Vielen Dank für Ihre Beiträge.
Hilfreichster Kommentar
@ Johnmartel Ja. Ich möchte immer einige Testmodule implementieren, aber momentan läuft mir immer die Zeit davon 😿. Wir müssen die Laufzeit selbst überprüfen, bevor wir sie veröffentlichen.