onepf / OpenIAB

Open In-App Billing for Google Play, SlideMe, Amazon Store, Nokia Store, Samsung Apps, Yandex.Store, Appland, Aptoide, AppMall and Fortumo.
http://onepf.org/openiab/
Apache License 2.0
476 stars 171 forks source link

Some issues... #477

Open Lakedaemon opened 9 years ago

Lakedaemon commented 9 years ago

openIAB (0.9.8.7) is working mostly fine for me (on Amazon and Google play... no purchases yet on Yandex and SlideMe...)

I still got some crash reports from users or from my tests in emulators/real devices

For example, I got some NPE for devices, whith apk that were installed without the adb -i switch to set the appStore (still, the NPE shouldn't happen):

java.lang.NullPointerException at org.onepf.oms.appstore.SamsungAppsBillingService.queryInventory (SamsungAppsBillingService.java : 195) at org.onepf.oms.OpenIabHelper.queryInventory (OpenIabHelper.java : 1410) at org.onepf.oms.OpenIabHelper$17.run (OpenIabHelper.java : 1462) at java.lang.Thread.run (Thread.java : 856)

Lakedaemon commented 9 years ago

I also get the following stack trace from Nokia Nokia_X RM-980, MID TM903, ... Those have been setup by google play/amazon/slideMe/Yandex (don't know which one)

java.lang.NullPointerException at android.os.Parcel.readException (Parcel.java : 1431) at android.os.Parcel.readException (Parcel.java : 1379) at org.onepf.oms.IOpenInAppBillingService$Stub$Proxy.getPurchases (IOpenInAppBillingService.java : 280) at org.onepf.oms.appstore.OpenAppstore$IOpenInAppBillingWrapper.getPurchases (OpenAppstore.java : 209) at org.onepf.oms.appstore.googleUtils.IabHelper.queryPurchases (IabHelper.java : 901) at org.onepf.oms.appstore.googleUtils.IabHelper.queryInventory (IabHelper.java : 580) at org.onepf.oms.OpenIabHelper.queryInventory (OpenIabHelper.java : 1410) at org.onepf.oms.OpenIabHelper$17.run (OpenIabHelper.java : 1462) at java.lang.Thread.run (Thread.java : 856)

Lakedaemon commented 9 years ago

I also got this one from Nokia Nokia_X RM-980, : Those have been setup by google play/amazon/slideMe/Yandex (don't know which one)

java.lang.IllegalStateException: Can't check billing. Current state: IAB helper is set up. at org.onepf.oms.OpenIabHelper.checkBillingAndFinish (OpenIabHelper.java : 791) at org.onepf.oms.OpenIabHelper.checkBillingAndFinish (OpenIabHelper.java : 784) at org.onepf.oms.OpenIabHelper.access$1000 (OpenIabHelper.java : 84) at org.onepf.oms.OpenIabHelper$9.onServiceConnected (OpenIabHelper.java : 670) at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java : 1097) at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java : 1114) at android.os.Handler.handleCallback (Handler.java : 615) at android.os.Handler.dispatchMessage (Handler.java : 92) at android.os.Looper.loop (Looper.java : 137) at android.app.ActivityThread.main (ActivityThread.java : 4807) at java.lang.reflect.Method.invokeNativeNative Method at java.lang.reflect.Method.invoke (Method.java : 511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 792) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 559) at dalvik.system.NativeStart.mainNative Method

Lakedaemon commented 9 years ago

Now that I sell on samsungApps, I have also started the first reported exception from samsungApps users :

java.lang.NullPointerException at org.onepf.oms.appstore.SamsungAppsBillingService.queryInventory (SamsungAppsBillingService.java : 195) at org.onepf.oms.OpenIabHelper.queryInventory (OpenIabHelper.java : 1410) at org.onepf.oms.OpenIabHelper$17.run (OpenIabHelper.java : 1462) at java.lang.Thread.run (Thread.java : 841)

akarimova commented 9 years ago

Hello! Do you know how to reproduce any of these issues?

java.lang.NullPointerException at org.onepf.oms.appstore.SamsungAppsBillingService.queryInventory (SamsungAppsBillingService.java : 195) at org.onepf.oms.OpenIabHelper.queryInventory (OpenIabHelper.java : 1410) at org.onepf.oms.OpenIabHelper$17.run (OpenIabHelper.java : 1462) at java.lang.Thread.run (Thread.java : 856)

mIapConnector seems to be null

java.lang.NullPointerException at android.os.Parcel.readException (Parcel.java : 1431) at android.os.Parcel.readException (Parcel.java : 1379) at org.onepf.oms.IOpenInAppBillingService$Stub$Proxy.getPurchases (IOpenInAppBillingService.java : 280) at org.onepf.oms.appstore.OpenAppstore$IOpenInAppBillingWrapper.getPurchases (OpenAppstore.java : 209) at org.onepf.oms.appstore.googleUtils.IabHelper.queryPurchases (IabHelper.java : 901) at org.onepf.oms.appstore.googleUtils.IabHelper.queryInventory (IabHelper.java : 580) at org.onepf.oms.OpenIabHelper.queryInventory (OpenIabHelper.java : 1410) at org.onepf.oms.OpenIabHelper$17.run (OpenIabHelper.java : 1462) at java.lang.Thread.run (Thread.java : 856)

openStoreBilling seems to be null

ava.lang.IllegalStateException: Can't check billing. Current state: IAB helper is set up. at org.onepf.oms.OpenIabHelper.checkBillingAndFinish (OpenIabHelper.java : 791) at org.onepf.oms.OpenIabHelper.checkBillingAndFinish (OpenIabHelper.java : 784) at org.onepf.oms.OpenIabHelper.access$1000 (OpenIabHelper.java : 84) at org.onepf.oms.OpenIabHelper$9.onServiceConnected (OpenIabHelper.java : 670) at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java : 1097) at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java : 1114) at android.os.Handler.handleCallback (Handler.java : 615) at android.os.Handler.dispatchMessage (Handler.java : 92) at android.os.Looper.loop (Looper.java : 137) at android.app.ActivityThread.main (ActivityThread.java : 4807) at java.lang.reflect.Method.invokeNativeNative Method at java.lang.reflect.Method.invoke (Method.java : 511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 792) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 559) at dalvik.system.NativeStart.mainNative Method

no ideas

Lakedaemon commented 9 years ago

I'll keep an eye open to see if I find a way to reproduce them. Anyway, There should be guards in openIAB preventing thess null cases to throw NPE

I received some new related stacktrace today (from samsungApps) : java.lang.NullPointerException :Attempt to invoke interface method 'android.os.Bundle com.sec.android.iap.IAPConnector.getItemsInbox(java.lang.String, java.lang.String, int, int, java.lang.String, java.lang.String)' on a null object reference at org.onepf.oms.appstore.SamsungAppsBillingService.queryInventory (SamsungAppsBillingService.java : 195) at org.onepf.oms.OpenIabHelper.queryInventory (OpenIabHelper.java : 1410) at org.onepf.oms.OpenIabHelper$17.run (OpenIabHelper.java : 1462) at java.lang.Thread.run (Thread.java : 818)

another NPE in queryInventory :/

and this one : java.lang.IllegalArgumentException: Service not registered: org.onepf.oms.appstore.SamsungAppsBillingService$1@2872be83 at android.app.LoadedApk.forgetServiceDispatcher (LoadedApk.java : 1110) at android.app.ContextImpl.unbindService (ContextImpl.java : 2190) at android.content.ContextWrapper.unbindService (ContextWrapper.java : 571) at org.onepf.oms.appstore.SamsungAppsBillingService.dispose (SamsungAppsBillingService.java : 347) at org.onepf.oms.appstore.SamsungApps$1$1.run (SamsungApps.java : 145) at java.lang.Thread.run (Thread.java : 818)