Gdx-pay случайный нулевой указатель, когда он пытается вызвать handlePurchase () - PullRequest
0 голосов
/ 30 сентября 2018
java.lang.NullPointerException: Attempt to invoke interface method 'void com.badlogic.gdx.pay.PurchaseObserver.handlePurchase(com.badlogic.gdx.pay.Transaction)' on a null object reference
   at com.badlogic.gdx.pay.android.googlebilling.PurchaseManagerGoogleBilling.handlePurchase(PurchaseManagerGoogleBilling.java:243)
   at com.badlogic.gdx.pay.android.googlebilling.PurchaseManagerGoogleBilling.onPurchasesUpdated(PurchaseManagerGoogleBilling.java:209)
   at com.android.billingclient.api.BillingClientImpl$1.onReceive(BillingClientImpl.java:136)
   at com.android.billingclient.api.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:303)
   at com.android.billingclient.api.LocalBroadcastManager.access$000(LocalBroadcastManager.java:44)
   at com.android.billingclient.api.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:114)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:211)
   at android.app.ActivityThread.main(ActivityThread.java:5317)
   at java.lang.reflect.Method.invoke(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

В большинстве случаев мои покупки успешно завершаются, и на мой Обратный вызов вызывается handlePurchase (), все работает нормально.Но иногда я получаю это исключение изнутри gdx-pay.Похоже, что наблюдатель был нулевым.

В чем причина этого, и могу ли я что-нибудь сделать в своем коде, чтобы попытаться предотвратить эту проблему?

1 Ответ

0 голосов
/ 01 октября 2018

Используете ли вы метод dispose () и возникает ли проблема после установки нового клиента для выставления счетов?В реализации googlebilling была ошибка, если вы ее использовали.См. gdx-pay проблема 180 .

Обходной путь: Не используйте dispose () и не держите клиент биллинга.Лучше использовать 11,4-SNAPSHOT.

...