ورود

View Full Version : مشکل Not allowed to bind to service Intent در پرداخت درون برنامه ای بازار



aliireza
جمعه 01 آبان 1394, 17:09 عصر
سلام به دوستان.
من میخوام پرداخت درون برنامه ای بازار رو پیاده سازی کنم. طبق مستندات پیش رفتم ولی وقتی اپ رو اجرا میکنم و میخوام وارد اکیتیویتی که درونش پرداخت رو پیاده کردم برم force close میده.
Logcat:

10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: FATAL EXCEPTION: main
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: Process: my.package.name, PID: 3095
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package.name/my.package.name.InAppBillingActivity}: java.lang.SecurityException: Not allowed to bind to service Intent { act=ir.cafebazaar.pardakht.InAppBillingService.BIN D pkg=com.farsitel.bazaar }
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2416)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2476)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.-wrap11(ActivityThread.java)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1344)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:10 2)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.jav a:5417)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:726)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:616)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: Caused by: java.lang.SecurityException: Not allowed to bind to service Intent { act=ir.cafebazaar.pardakht.InAppBillingService.BIN D pkg=com.farsitel.bazaar }
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ContextImpl.bindServiceCommon(ContextI mpl.java:1322)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ContextImpl.bindService(ContextImpl.ja va:1286)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.content.ContextWrapper.bindService(Context Wrapper.java:604)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at my.package.name.util.IabHelper.startSetup(IabHelpe r.java:269)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at my.package.name.InAppBillingActivity.onCreate(InAp pBillingActivity.java:46)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6 237)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1107)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2369)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2476)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.-wrap11(ActivityThread.java)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1344)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:10 2)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.jav a:5417)
10-23 17:46:10.347 3095-3095/ E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)

فعلا هم تو اپ اینجوری نوشتم که توی navigation drawer وقتی روی آیتم کلیک میکنی وارد اکتیویتی پرداخت میشه و داخل اون یه دکمه هست که وقتی میزنی عملیات پرداخت انجام میشه. (البته فعلا برای تست اینجوری نوشتم)
ممنون میشم راهنمایی کنید.

aliireza
جمعه 01 آبان 1394, 18:18 عصر
مشکل حل شد.
مشکل مربوط به پریمشن بود. با اینکه پرمیشن تو مانیفست گرفته شده ولی به نظر می‌رسید اعمال نشده بود. رفتم توی App Info مربوط به اپ خودم و تو قسمت پرمیشن‌ها گزینه payment through bazaar رو فعال کردم. نمیدونم چرا به طور پیش فرض فعال نیست. با اینکه اپ رو چندبار پاک و دوباره نصب کردم. اینم اشاره کنم که فعلا اپ رو فقط روی اندروید ام تست کردم. احتمالا روی نسخه‌های دیگه این مشکل پیش نیاد.
اگر دوستان میدونن چرا فعال نیست ممنون میشم کمک کنند.
ولی فعلا مشکلی که بالا بهش اشاره کردم حل شد.

mxsadegh
پنج شنبه 19 مرداد 1396, 19:48 عصر
خب این مشکل واسه همه برنامه ها هست
خودمم دنبال این موضوع بودم
میتونید برنامه های مثل دیوار رو ببینید که اوناهم به همچین چیزی برمیخورن

shahin bahari
جمعه 20 مرداد 1396, 00:06 صبح
مشکل مربوط به پریمشن بود. با اینکه پرمیشن تو مانیفست گرفته شده ولی به نظر می‌رسید اعمال نشده بود.
در مورد این پرمیشن اطلاعی ندارم ولی از اندروید 6 به بعد بعضی از پرمیشن ها رو باید موقع اجرا شدن برنامه از کاربر گرفت و نوشتنشون توی منیفست کفایت نمیکنه.

https://stackoverflow.com/questions/33666071/android-marshmallow-request-permission

Behrooz_CS
پنج شنبه 01 شهریور 1397, 13:11 عصر
وقتی بازار رو بعد از برنامه نصب کنی این مشکل پیدا میشه.