Libgdx Gdx在尝试调用handlePurchase()时使用空指针

Libgdx Gdx在尝试调用handlePurchase()时使用空指针,libgdx,in-app-purchase,gdx-pay,Libgdx,In App Purchase,Gdx Pay,大多数情况下,我的购买都会成功完成,并在回调时调用handlePurchase(),一切正常。但偶尔我会从gdx pay内部得到这个例外。这似乎表明观察者为空 造成这种情况的原因是什么?我可以在代码中做些什么来防止这种情况发生?您是否使用dispose()方法?在设置新的计费客户端后,是否会出现此问题? 如果您使用googlebilling,它的实现中有一个bug。看 解决方法是:不要使用dispose()并保留计费客户端。更好的方法是使用11.4-SNAPSHOT。我最后切换到了GoogleP

大多数情况下,我的购买都会成功完成,并在回调时调用handlePurchase(),一切正常。但偶尔我会从gdx pay内部得到这个例外。这似乎表明观察者为空

造成这种情况的原因是什么?我可以在代码中做些什么来防止这种情况发生?

您是否使用dispose()方法?在设置新的计费客户端后,是否会出现此问题? 如果您使用googlebilling,它的实现中有一个bug。看


解决方法是:不要使用dispose()并保留计费客户端。更好的方法是使用11.4-SNAPSHOT。

我最后切换到了
GooglePlayPurchaseManager
,它似乎没有同样的问题。但我确实认为这可能是造成我麻烦的原因,谢谢。
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)