سورس ویژه پخش فیلم و سریال با درگاه زرین پال

حل مشکل بسته شدن اپلیکیشن در اندروید 9

دی 2, 1398| علی شیرالی
رفع مشکل اجرا نشدن اپلیکیشن روی اندروید 9 | مارکت سورس اندروید ریور

در این مقاله درباره حل مشکل اجرا نشدن و یا بسته شدن اپلیکیشن در اندروید 9 یا Pie صحبت می کنیم. اندروید Pie که توسعه دهندگان اندروید با نام Api Level 28 اون رو می شناسند در آگوست سال 2018 میلادی منتشر شده تحولات عظیمی در زمینه مصرف بهینه از منابع اسمارت فون و همچنین ملاحظات امنیتی کرده که خب اعتراف می کنم این تغییر و تحولات لازم بود تا اندروید رو به سمت یک سیستم عامل بهینه تر سوق بده. در ادامه برای یافتن راه حل مشکلی که انگیزه من برای نگارش این مقاله شده همراه باشید..

بسته شدن یا اجرا نشدن اپلیکیشن روی اندروید 9

همواره پیشنهاد می کنم از این پس برای بیلد اپلیکیشن ها و بازی ها خودتون SDKVersion و TargetSDKversion روی نسخه 28 قرار بدید تا بتوانید پروژه خودتون رو برای لانچ روی اندروید 9 با سازگاری حداقلی فایل خروجی آماده کنید. این تمام کار نیست و البته الزام هم نیست اما یک پیشنهاد موثر برای اجرا پروژه شما روی اندروید 9 است.

در این بخش از مقاله می خواهیم مشکل را به دو بخش تفکیک کنیم تا بتوانیم واضح تر درباره چیزی که قرار است با آن دست و پنجه نرم کنیم صحبت کنیم. بخش اول مربوط به برقراری ارتباط امن با شبکه اینترنت از طریق پورت https است و بخش دیگر مربوط عدم اجازه اجرا عملیات پس زمینه یا Background Service در پروژه شماست ، نترسید ، مطمئنا تا به امروز شاخ غول های متعددی در طول پروسه توسعه پروژه های موبایلی خود شکسته اید این که دیگه چیزی نیست…

نکته : یک نکته کلیدی برای خروجی گرفته نسخه release وجود دارد که باید حتما رعایت شود تا از بروز خطاهایی مانند App Not Installed هم جلوگیری شود این است که حتما در زمان خروجی گرفتن از پروژه خود در بخش نسخه های امضا یا Signature Versions تیک گزینه های V1 , V2 را بزنید. به تصویر زیر دقت کنید :

خب حالا بپردازیم به راه حل هایی که موجب میشود اپلیکیشن یا بهتر است در حالت کلی تر بگوییم پروژه شما روی اندروید Pie هم بدون مشکل اجرا شود

همچنین بخوانید :  آشنایی با برنامه نویسی اندروید

حل مشکل بسته شدن یا اجرا نشدن اپلیکیشن هایی Web Based

تلاش کردم Web Based ننویسم اما حقیقتا نمیدانستم چه بنویسم تا حق مطلب را ادا کند ، شما بخوانید وب محور یا سرور محور.

این نوع اپلیکیشن ها یا بازی ها برای ارائه محتوایشان حتما به یک کانکشن اینترنت که می تواند از پورت http یا https برای کامیونیکیت یا تبادل استفاده کند ، نیاز دارند مثلا یک اپلیکیشن که مقالات وب سایت شما را نمایش می دهد.این مشکل زمانی روی اندروید 9 پیش می آید که اپلیکیشن شما از پورت http برای تبادل اطلاعات استفاده کند ، خوشبختانه اندروید 9 تنها پروتکل ssl را استاندارد می داند و اجازه تبادل اطلاعات روی http را نمی دهد

خب حالا برای حل این مشکل چه کنیم ؟

کافیست خط زیر را به فایل AndroidManifest.xml در تگ مروبط به اپلیکیشن خود یعنی <application اضافه کنید :

android:usesCleartextTraffic="true">
    <uses-library android:name="org.apache.http.legacy" android:required="false" />

بعد از افزودن خط بالا می توانید از اپلیکیشن خود اجرا بگیرید و می بینید که مشکل کاملا حل شده و اپلیکیشن شما روی اندروید 9 اجرا می شود و شما می توانید مدت زمانی را به خوشحالی کردن اختصاص دهید.

حل مشکل بسته شدن یا اجرا نشدن اپلیکیشن های دارای Background Services

سرویس های پس زمینه قبلا به راحتی کار می کردند و برای اپ یا پروژه شما مشکلی روی نسخه های مختلف سیستم عامل های اندروید ایجاد نمی کردند اما از زمانی که اندروید 9 پا به میدان گذاشت ، هیچ چیز شبیه قبل نبود حالا شما لازم دارید تا سرویس های پس زمینه را به Foreground services تبدیل کنید تا جناب اندروید Pie رخصت دهد پروژه شما روی اجرا شود.

همچنین بخوانید :  آموزش Json در اندروید با کتابخانه Gson

به این دلیل که در اپلیکیشن شما نمی دانم چه عملیاتی در بک گراند اجرا می شود و این مورد برای هر اپلیکیشنی متفاوت است قطعا نمی توان یک مثال یکسان با شیوه یکسان به صورت کلی برای همه بیان کرد ، در اصل تعداد راه حل ها به اندازه تعداد اپلیکیشن هاست اگر بخواهیم کمی فلسفی به ماجرا نگاه کنیم.

برای اینکه مقاله طولانی تر از اینی که هست نشود یک مثال خوب به این مقاله لینک شد که با استفاده از این مثال واقعا ارزشمند ، بتوانید سرویسی که در اپلیکیشن شما در بک گراند اجرا می شود را از پس زمینه به پیش زمینه یا فورگراند منتقل کنید.

پیچیدگی این انتقال هم بسته به اینکه چه سرویسی در بک گراند اپلیکیشن شما اجرا می شود می تواند روی میزانی دشواری آن تاثیر گزار باشد.

لینک مقاله راهنما :

لینک مقاله

نتیجه گیری:

در درجه اول ، شما باید اپلیکیشن خود را دیباگ کنید و ببینید در کنسول خود چه خطایی دریافت می کنید و بر اساس آن اقداماتی که لازم است را انجام دهید ، البته دو مورد بالا شاید دلیل بیش از 90% از رخ دادن عدم اجرا یا بسته شدن پروژه روی اندروید 9 باشد.حل مشکلات مربوط به Background Services ممکن است کمی دشوار باشد به این دلیل که مثالی که می توان بیان کرد بسیار کلی و شاید سمبلیک باشد به این دلیل که دقیقا برای هر اپلیکیشن یا بازی این سرویس ها متفاوت هستند و تعریف توابع و کلاس ها در آن یکسان نیست اما سعی کردم بهترین مقاله ای که می تواند مفاهیم پایه ایجاد یک Foreground Services را توضیح دهد بیابم و به این مقاله لینک کنم . امیدوارم این مقاله در حد خودش بتونه راهگشای توسعه دهندگان عزیز باشه ! هپی کدینگ …

علی شیرالی نویسنده مقاله

بنیانگذار مارکت اندروید ریور ، توسعه دهنده وب و موبایل ، گاهی هم گیم باز 🎮 و صد البته یه عاشق فیلمسازی 🎬 و عکاسی 📷 که چندین گام جدی هم توی این زمینه برداشته..



می تونی علی شیرالی رو توی شبکه های اجتماعی هم دنبال کنی ...

مقالات مرتبط را بخوانید :


سورس های اندروید شامل تخفیف رو ببین !

به این مقاله امتیاز دهید :
5/5 (1 Review)
  خرید سورس های حرفه ای بازی و اپلیکیشن اندروید

  تخفیف ها و اخبار ویژه رو در تلگراممون دنبال کن :)

دسته‌ها: آموزش برنامه نویسی اندروید

دیدگاه

  • Saeed Avazeh
    اردیبهشت 10, 1399

    سلام دوست عزیز
    ممنون به خاطر مقاله خوبتون!
    من مشکلی که دارم اینه که سایت فروشگاهی رو https کردم اما همچنان برنامه مشکل داره و توی نسخه 9 یا 10 اندروید روی گوشی واقعی اجرا نمیشه اما توی AVD اجرا میشه حالا با هر نسخه ی اندرویدی که بگین هم اجرا میشه!
    اون خط کد رو هم اضافه کردم ولی مشکل پابرجاست! ممنون میشم یه راهنمایی بکنید!

دیدگاهتان را بنویسید

راهنما : برای نوشتن موارد مختلف در دیدگاه می توانید از راهنمای نگارش اندروید ریور استفاده کنید : نگارش کد کوتاه `your code`
نگارش کد بلند یا نگارش بخش عمده یک سورس کد :
[sourcecode lang="your code language"] your code here [/sourcecode]