آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نصب بازار بعد از برنامه ای که پرداخت داخلی دارد و ایجاد کرش !

rayacoder  10 سال پیش  10 سال پیش
0 0

درود.

به دلایل مختلفی ممکنه اپ ما قبل از نصب بودن بازار روی یک دستگاه نصب بشه و یا اینکه بعد از نصب اپ ما، برنامه بازار حذف بشه و مجددا نصب بشه (کاره دیگه میشه) در این شرایط اگر اپی که حاوی پرداخت درون برنامه هست باز بشه و به قسمتی که برای آماده سازی سرویس پرداخت میشه میرسه کرش میکنه. خواستم بدونم آیا کسی به این مورد برخورده و راه حلی براش داره ؟

این هم تیکه ای که کرش از اونجا شروع میشه. از جایی که کرش میکنه کد رو میگذارم و کل سورس رو نمیذارم که شلوغ نشه:

 G.log("R.C: bereiten kauf", i);// Crash after here
iabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {

@Override
public void onIabSetupFinished(IabResult result) {
if ( !result.isSuccess()) {
G.log("R.C: problem an der iab einstellungg: " + result, e);
return;
}
if (iabHelper == null) {
return;
}
G.log("R.C: setup erfolgreich. abfragen von inventar", i);
iabHelper.queryInventoryAsync(gotInventoryListener);
}
});
0 0
لازم به ذکره که درشرایط غیر از شرایطی که ذکر کردم همه چیز با صلح و دوستی بر وفق مراد انجام میشه. (10 سال پیش)
0 0
توی تستی که الان داشتم و یه تغییر جزیی دادم کرش مشاهده نشد. نیم ساعت دیگه بیشتر بررسی میکنم و اگر مشکل حل شده بود اعلام میکنم. (10 سال پیش)
0 0
قبل از اجرای این قسمت نصب بودن بازار رو بررسی کنی و همچنین این قسمت رو داخل try catch بزاری حل نمیشه؟ (10 سال پیش)
0 0
آقا این log ها رو به چه زبونی نوشتی؟ D: (10 سال پیش)
0 0
@Spirit اتفاقا قبل از این کار نصب بودن بازار چک میشه. مشکل وقتی هست که خب بازار دوباره نصب شده و وجود داره. در صورت نبودن بازار که خب چک کردن پرداخت انجام نمیشه. (10 سال پیش)
0 0
@Spirit زبون خاصی نیست. آلمانی خودمونه. با لهجه شیرین پارسی :دی دلیلشم اینه که اولا آلمانی دوست دارم. دوما هم اینکه کمتر کسی میتونه لوگهام رو بخونه :دی (10 سال پیش)
0 0
وقتی روی دکمه ارتقا کلیک میشه بررسی کن که بازار نصبه یا نه. اگه نصب بود برو برای پرداخت اگرم نبود پیام بده که برنامه بازار روی دستگاه شما نصب نیست (10 سال پیش)
0 0
@hosseinAmini دوست عزیز. مساله نصب بودن بازار نیست چون پیش از هر اقدامی اینکه بازار نصبه چک میشه. (10 سال پیش)
0 0
کسی راه حلی بجز حذف کردن برنامه برای این موضوع داره ؟ من خودم از try استفاده میکنم و اگه کرش کرد یعنی که بازار بعد از برنامه نصب شده بود و توی catch یه توست به کاربر نششون میدم ک برنامه رو دوباره از اول نصب کنه تا مشکل برطرف بشه .یا میشه دیالوک نشون داد و توضیح داد که بخاطر نصب نبودن بازار این مشکل بوجود اومده راه حلی بهتر سراغ دارد بگید ... ممنون (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
rayacoder  10 سال پیش
+1 0

بگذارید با دو مثال بگم:

1- بازار نصب است. برنامه ما نصب میشود. برنامه ما باز شده و به صفحه پرداخت میرویم، اقدام به پرداخت میکنیم. نتیجه: همه چیز آنطور که میخواهیم است.

2- بازار نصب نیست. برنامه ما نصب میشود. بازار نصب میشود. برنامه ما باز شده و به صفحه پرداخت میرویم. نتیجه: پیش از باز شدن صفحه و دقیقا در  G.log("R.C: bereiten kauf", i); کرش میکنیم :دی

پاسخ به سوال 
125485  10 سال پیش
0 0

سلام
در واقع این ارور به خاطر نبود پرمیشن پرداخت درون برنامه ای کافه بازار است !

توجه کنید پرمیشن پرداخت درون برنامه ای کافه بازار  که به manifest اضافه می کنید :
   <uses-permissionandroid:name="com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR"/>
زمانی که برنامه کافه بازار در گوشی کاربر نصب نباشد در هنگام نصب برنامه این پرمیشن برای آندروید قابل درک نیست و به کاربر جهت دریافت اجازه نمایش داده نمی شود و اگر برنامه کافه بازار نصب شود چون در هنگام نصب برنامه شما پریمیشن پرداخت کافه بازار برای آندروید قابل فهم نبود و به کاربر نشان داده نشده  برنامه شما چنین پریمیشن ندارد  
دقیقا مثل این می شه که شما این پریمیشن رو در manifest قرار ندادید
با برای حل این مشکل یه راه حل هست که اونم نیاز به روت بودن گوشیه کاربره !  (که خیلی از گوشی ها روت نیست)
راه حل دوم  پس از نصب کردن کافه بازار می بایست برنامه شما هم مجددا نصب شود

0 0
این یکی از کارهای خودمونه یه نگاه کن و نحوه ای عمکردش رو ببین حتما متوجه می شی و کمکت می کنه لینک (10 سال پیش)
0 0
@kiaxseventh دوست عزیز، پرمیشن که جزو الفبای کاره و ماله دبستانی‌هاست! محاله یادم بره و نرفته. مشکل از لایف سیکل هست. اینو خودم میدونم و رفعش کردم اما یه نکته رو میخواستم عمیقتر پیدا کنم. (10 سال پیش)
0 0
شما به توضیحات من اصلا توجه نکردید ! برنامه ی ما رو نصب کنید متوجه موضوع خواهید شد اگه برنامه شما نصب شود و بعد از نصب برنامه شما کافه بازار نصب شود برای شما مشکل ساز خواهد بود چون مجوز دسترسی پرداخت بازار از کاربر گرفته نمی شود و باید برای حل مشکل برنامه شما مجددا نصب شود (10 سال پیش)
0 0
جناب kiaxseventh اگه اینظوری باشه که شما میگید ... پس چرا وقتی برنامه بازار نصب هست و ما برنامه خودمون رو نصب میکنیم و بعدش بازار رو حذف میکنیم دوباره همین مشکل رو داریم قائدتا نباید مشکلی پیش بیاد چون شما میگید موقع نصب مجوز ها گرفته میشه اما به نظر من نمیتونه مشکل از مجوز دسترسی پرداخت بازار باشه . چون مجوز قبلا داده شده و بعد بازار نصب بوده و بعد ما بازار رو حذف میکنیم و مشکل پا برجاست (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .