libgdx / gdx-pay

A libGDX cross-platform API for InApp purchasing.
Apache License 2.0
225 stars 83 forks source link

NullPointerException in PurchaseResponseActivityResultConverter after purchase #88

Closed StefanoChiodino closed 8 years ago

StefanoChiodino commented 8 years ago

I'm on 0.9.0 and the new google play integration throws after a purchase @ PurchaseResponseActivityResultConverter:43 transaction.setPurchaseCost(priceInCents == null ? null : priceInCents); which I didn't even know you could do in Java.

Am I doing something wrong?

Fatal Exception: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1032, result=-1, data=Intent { (has extras) }} to activity {com.draga.android/com.draga.android.AndroidLauncher}: java.lang.NullPointerException at android.app.ActivityThread.deliverResults(ActivityThread.java:3500) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543) at android.app.ActivityThread.access$1200(ActivityThread.java:159) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) at dalvik.system.NativeStart.main(NativeStart.java) Caused by java.lang.NullPointerException at com.badlogic.gdx.pay.android.googleplay.billing.converter.PurchaseResponseActivityResultConverter.setInformationFields(PurchaseResponseActivityResultConverter.java:43) at com.badlogic.gdx.pay.android.googleplay.billing.converter.PurchaseResponseActivityResultConverter.convertToTransaction(PurchaseResponseActivityResultConverter.java:31) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService.convertPurchaseResponseDataToTransaction(V3GoogleInAppBillingService.java:193) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService.access$300(V3GoogleInAppBillingService.java:36) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService$2.handleResultOk(V3GoogleInAppBillingService.java:178) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService$2.onEvent(V3GoogleInAppBillingService.java:163) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService.onGdxPayActivityEvent(V3GoogleInAppBillingService.java:326) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService.access$1000(V3GoogleInAppBillingService.java:36) at com.badlogic.gdx.pay.android.googleplay.billing.V3GoogleInAppBillingService$V3GoogleInAppBillingServiceAndroidEventListener.onActivityResult(V3GoogleInAppBillingService.java:336) at com.badlogic.gdx.backends.android.AndroidApplication.onActivityResult(AndroidApplication.java:474) at com.draga.android.AndroidLauncher.onActivityResult(AndroidLauncher.java:74) at android.app.Activity.dispatchActivityResult(Activity.java:5563) at android.app.ActivityThread.deliverResults(ActivityThread.java:3496) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543) at android.app.ActivityThread.access$1200(ActivityThread.java:159) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) at dalvik.system.NativeStart.main(NativeStart.java)

keesvandieren commented 8 years ago

This error is caused by a bug in the library.

What is the currency used for the purchase? (Is it a currency that does not have cents)?

I just fixed the bug, and published a SNAPSHOT version to Sonatype (https://oss.sonatype.org/content/repositories/snapshots/ ) with version number: 0.9.1-SNAPSHOT.

Could you give that version a try? If it works well, I will release it tonight.

StefanoChiodino commented 8 years ago

I'm using british pounds, so yes, it has cents. I'm not sure why that value is null, I thought maybe because I'm doing test purchase, so the actual transaction is 0?

I'll give it a go and get back to you, Thanks!

StefanoChiodino commented 8 years ago

I've just done a test purchase and it worked like a charm, thanks!

keesvandieren commented 8 years ago

Thanks for testing!

Release 0.9.1 has been released and should be available on Maven Central soon