onepf / OpenIAB-Unity-Plugin

OpenIAB Unity Plugin for Android (Google Play, Samsung Apps, Amazon Appstore, SlideME, Nokia Store, Appland, Aptoide, AppMall, Yandex.Store, Fortumo), Windows Phone and iOS.
Apache License 2.0
145 stars 58 forks source link

Yandex Store issue with unity plugin 0.9.8.6 #87

Open sanmn19 opened 8 years ago

sanmn19 commented 8 years ago

I have integrated the plugin and calling with only Yandex in the storeKeys. I have pasted the key correctly. My game crashes and I am getting the following error. The jar openIAB-plugin.jar is present in Plugins/Android/. Also, I re-imported the plugin but issue persists. I have yandex store installed and I have logged in. Also, I have added the permissions in the manifest.

I/Unity (22743): \ Android OpenIAB plugin initialized ** I/Unity (22743):

I/Unity (22743): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 65) I/Unity (22743): D/OpenIAB-UnityPlugin(22743): createBroadcasts D/OpenIAB-UnityPlugin(22743): Starting setup. D/YandexStoreService( 5793): [YandexStoreService] getInAppBillingServiceIntent I/art (22743): Rejecting re-init on previously-failed class java.lang.Class I/art (22743): Rejecting re-init on previously-failed class java.lang.Class D/YandexStoreService( 5793): [YandexStoreService] Call IOpenAppstore$Stub.isBillingAvailable for package: V/AsyncHttpResponseHandler(22743): Progress 16 from 1 (1600%) I/art (22743): Rejecting re-init on previously-failed class java.lang.Class D/AndroidRuntime(22743): Shutting down VM --------- beginning of crash E/AndroidRuntime(22743): FATAL EXCEPTION: main E/AndroidRuntime(22743): Process: <myAppPackage, PID: 22743 E/AndroidRuntime(22743): java.lang.Error: FATAL EXCEPTION [main] E/AndroidRuntime(22743): Unity version : 5.1.4f1 E/AndroidRuntime(22743): Device model : motorola XT1052 E/AndroidRuntime(22743): E/AndroidRuntime(22743): Caused by: java.lang.NoClassDefFoundError: org.onepf.oms.appstore.OpenAppstore$IOpenInAppBillingWrapper E/AndroidRuntime(22743): at org.onepf.oms.appstore.OpenAppstore$1.getServiceFromBinder(OpenAppstore.java:76) E/AndroidRuntime(22743): at org.onepf.oms.appstore.googleUtils.IabHelper$1.onServiceConnected(IabHelper.java:229) E/AndroidRuntime(22743): at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1208) E/AndroidRuntime(22743): at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1225) E/AndroidRuntime(22743): at android.os.Handler.handleCallback(Handler.java:739) E/AndroidRuntime(22743): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime(22743): at android.os.Looper.loop(Looper.java:135) E/AndroidRuntime(22743): at android.app.ActivityThread.main(ActivityThread.java:5343) E/AndroidRuntime(22743): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(22743): at java.lang.reflect.Method.invoke(Method.java:372) E/AndroidRuntime(22743): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) E/AndroidRuntime(22743): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

sanmn19 commented 8 years ago

Not working with Slideme as well. Different log though. Please help. Measures I took include checking if slideme store is installed and I have logged in, installing with command line argument -i com.slideme.sam.manager(I had done this with yandex as well with argument -i com.yandex.store)

I/Unity ( 1664): \ Android OpenIAB plugin initialized **

I/Unity ( 1664): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 65) D/OpenIAB-UnityPlugin( 1664): createBroadcasts D/OpenIAB-UnityPlugin( 1664): Starting setup. I/art ( 1664): Rejecting re-init on previously-failed class java.lang.Class<org.onepf.oms.appstore.OpenAppstore$IOpenInAppBillingWrapper> I/art ( 1664): Rejecting re-init on previously-failed class java.lang.Class<org.onepf.oms.appstore.OpenAppstore$IOpenInAppBillingWrapper> D/AndroidRuntime( 1664): Shutting down VM

--------- beginning of crash

E/AndroidRuntime( 1664): FATAL EXCEPTION: main E/AndroidRuntime( 1664): Process: , PID: 1664 E/AndroidRuntime( 1664): java.lang.Error: FATAL EXCEPTION [main] E/AndroidRuntime( 1664): Unity version : 5.1.4f1 E/AndroidRuntime( 1664): Device model : motorola XT1052

E/AndroidRuntime( 1664): Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=org.onepf.oms.billing.BIND } E/AndroidRuntime( 1664): at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1819) E/AndroidRuntime( 1664): at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1918) E/AndroidRuntime( 1664): at android.app.ContextImpl.bindService(ContextImpl.java:1896) E/AndroidRuntime( 1664): at android.content.ContextWrapper.bindService(ContextWrapper.java:539) E/AndroidRuntime( 1664): at org.onepf.oms.appstore.googleUtils.IabHelper.startSetup(IabHelper.java:277) E/AndroidRuntime( 1664): at org.onepf.oms.OpenIabHelper$16.run(OpenIabHelper.java:1232) E/AndroidRuntime( 1664): at android.os.Handler.handleCallback(Handler.java:739) E/AndroidRuntime( 1664): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime( 1664): at android.os.Looper.loop(Looper.java:135) E/AndroidRuntime( 1664): at android.app.ActivityThread.main(ActivityThread.java:5343) E/AndroidRuntime( 1664): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 1664): at java.lang.reflect.Method.invoke(Method.java:372) E/AndroidRuntime( 1664): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) E/AndroidRuntime( 1664): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

sanmn19 commented 8 years ago

I tried with different options verify_everything, verify_skip and verify_known but face the same issue in all 3. I saw one line in log for verify_known which maybe of interest: Scheduling restart of crashed service com.slideme.sam.manager/.inapp.openiab.OpenIabStoreService in 1000ms

Also, here is my code in case you see any mistakes there

    var options = new Options();
    options.checkInventory = true;
    options.verifyMode = OptionsVerifyMode.VERIFY_SKIP;
    options.prefferedStoreNames = new string[]{ 
    #if IAP_YANDEX
            OpenIAB_Android.STORE_YANDEX,
    #elif IAP_SLIDEME
            OpenIAB_Android.STORE_SLIDEME
    #endif
    };
    #if IAP_YANDEX
    options.storeKeys.Add(OpenIAB_Android.STORE_YANDEX, "<key>");
    #elif IAP_SLIDEME
    options.storeKeys.Add(OpenIAB_Android.STORE_SLIDEME, "<key>");
    #endif
    OpenIAB.init(options);
sanmn19 commented 8 years ago

Yandex is working now. No clue how it started working. Now there are no errors in log for Yandex. Slideme however still crashes the game.