اگر گوشی اندرویدی دارید، احتمالاً هنگام نصب یا بهروزرسانی اپلیکیشنها بهصورت دستی ازطریق فایل APK آنها با خطای App Not Installed یا Application not Installed ناآشنا نیستید. درواقع، متحملترین دلیلی که میتوان برای این موضوع متصور دانست، ناسازگاربودن اپلیکیشن با نسخهی اندروید یا رابط کاربری گوشی شماست که تا حد زیادی درست است؛ اما تنها دلیل ممکن نیست.
نصب اپلیکیشن در اندروید ممکن است به دلایل مختلفی با خطا مواجه شود و متأسفانه Package Installer اندروید دلیل نصبنشدن این اپلیکیشن یا کد خطای آن را مشخص نمیکند؛ مگر آنکه ازطریق پل اشکالزدایی اندروید (ADB) اپلیکیشن را نصب و کد خطا را مشاهده کنید. بنابراین، برای رفع این مشکل باید دلایل مختلف این موضوع را بررسی و از روشهای گوناگونی برای عیبیابی استفاده کنید. در این مقاله، قصد داریم که دلایل مختلف نصبنشدن اپلیکیشن در گوشیهای اندروید را بررسی و روش رفع آنها را توضیح دهیم.
دلایل نصبنشدن برنامه در اندروید
- اپلیکیشن ممکن است بهدرستی خروجی نگرفته شده باشد یا فایلهای درونی آن ناقص باشند یا بهدلیل دانلود ناصحیح یا دستبردن در آنها آسیبدیده باشند.
- حافظهی ذخیرهسازی گوشی تقریباً تکمیل شده باشد و فضایی برای نصب اپلیکیشن وجود نداشته باشد
- نسخهای از اپلیکیشن که دانلود شده، از نسخهی نصبشده قدیمیتر باشد.
- اپلیکیشن با شیوهی جدید اپ باندل (aab) خروجی گرفته شده باشد و درنهایت بهشکل APKهایی تکهتکه (Split APK) درآمده باشد که نصب آن بهشیوهی معمول ازطریق پکیج اینستالر اندروید امکانپذیر نیست.
- فایل Android Manifest که محتوی مجوزها و دسترسیهای برنامه است، دسترسیهای بیشازحد یا ناسازگار یا تعریفنشده در نسخهی فعلی اندروید گوشی یا رابط کاربری آن داشته باشد.
- حدقل SDK Version تعریفشده برای اپلیکیشن در فایل build.gradle از SDK Version اندروید شما بیشتر باشد.
- APK اپلیکیشن فاقد امضا (Signature) باشد یا امضای فعلی آن با امضای نسخهی نصبشده همخوانی نداشته باشد.
نصبنشدن اپلیکیشنها در برخی از احتمالات مطرحشده ممکن است با علم بر منشأ مشکل برطرف شود، برای مثال، نصبنشدن نسخهی قدیمیتر اپلیکیشن روی نسخهای که از آن جدیدتر است، امری بدیهی است و در ابتدا باید نسخهی جدیدتر را حذف و سپس نسخهی قدیمی را نصب کنید یا اگر پیغام پرشدن حافظه را در بخش اعلانها مشاهده میکنید، باید فضای ذخیرهسازی را بهاندازهی حداقل دو گیگابایت خالی کنید.
برخی احتمالات دیگر به عیبیابی نیاز دارد که درادامه روشهای ممکن برای عیبیابی و رفع مشکل نصبنشدن اپلیکیشن در اندروید را شرح خواهیم داد. توجه کنید که پیش از هرگونه کاری، اگر نسخهای از آن اپلیکیشن روی گوشی شما نصب است و شما به نصب نسخهی دریافتشده تمایل دارید، باید نسخهی نصبشده را از گوشی خود پاک و سپس عیبیابی کنید.
رفع مشکل نصبنشدن برنامه در اندروید
۱. تغییر کدهای برنامه
گاهی اوقات با تغییر کدهایی چون SDK Version یا نسخهی اندروید، مشکل نصبنشدن برنامه حل میشود. برای این کار در گوشی اندروید برنامهای به نام APK Editor وجود دارد که برای برخی ویرایشهای معمول و سریع فایلهای APK کاربرد دارد.
- برنامهی APK Editor را نصب کنید.
- برنامه را باز کنید و روی Select an Apk File ضربه بزنید. اکنون فایل APK مدنظر را از حافظهی گوشی خود پیدا و انتخاب کنید.
- روی گزینهی Common Edit ضربه بزنید.
- در اینجا مسیر پیشفرض نصب را از قسمت Install Location به دیگر گزینههای دردسترس برای گوشی خود تغییر دهید.
- اگر نسخهای از برنامه در گوشی شما نصب است و نسخهی جدیدتر آن نصب نمیشود، سعی کنید از قسمت Version Code، نسخهی برنامه را به همان نسخهای تغییر دهید که در گوشی شما نصب بود یا Minimun SDK Version را به SDK Version اندروید فعلی خود تغییر دهید. توجه کنید SDK Version با نسخهی سیستمعامل تفاوت دارد و برای اطلاع از این موضوع، نسخهی اندروید خود را بههمراه SDK Version در اینترنت جستوجو کنید.
- در پایان، روی گزینهی Save کلیک کنید تا APK جدید خروجی گرفته شود.
۲. نصب APKهای باندلشده
اگر برنامهای که قصد دارید آن را نصب کنید، نصب نمیشود، یکی از دلایل محتمل این است که برنامه با فرمت aab یا اپباندل اندروید منتشر شده باشد. در این صورت، APK کدهای برنامه یا base.apk از فایلهایی چون پیکربندی (Device Configuration) و ویژگیهای اضافی جدا میشود.
درواقع، فایلهای APK عادی شامل تمامی منابع و پیکربندیهای لازم (مانند DPI صفحه، معماری پردازنده، اِلِمانهای گرافیکی برنامه و تنظیمات) برای هر مدل دستگاهی میشود و موقع نصب برنامه تمامی آنها حتی مواردی را نصب میکند که اصلاً گوشی شما احتیاجی به آن ندارد و باعث پرشدن سریعتر حافظه میشود. گوگل برای این موضوع راهحلی جدیدی ارائه داد و سازوکار جدیدی برای خروجیگرفتن از اپلیکیشنها با عنوان Android App Bundles معرفی کرد.
در این سازوکار، کدهای کامپایلشدهی برنامه برای ساخت APK نهایی را دریافت و فایلهای پیکربندی را در APKهای جداگانه منتشر میکند و موقع دانلود اپلیکیشن یا گوگلپلی یا هر فروشگاه دیگری که از این شیوه استفاده میکند، تنها پیکربندی مربوط به دستگاه دانلود میشود. بنابراین، اگر از برنامه خروجی گرفته شود، تنها فایل base.apk تولید میشود. در چنین وضعیتی، تمامی APKها باید استخراج و در قالب یک فایل قرار بگیرد و در یک زمان نصب شوند؛ اما با Package Installer اندروید نمیتوان این کار را انجام داد و فرایند نصب با خطا مواجه میشود.
برای رفع مشکل نصب برنامههای Splitشده، باید از اپلیکیشنهایی استفاده کنید که برای نصب Split APK مانند SAI توسعه داده شدهاند و تمامی APKهای لازم برای نصب برنامه را دراختیار داشته باشید.
- برنامهی SAI یا Split APK Installer را نصب کنید.
- برنامه را باز کنید و روی Install APKs ضربه بزنید و به مسیری بروید که فایلهای APK برنامه در آن قرار دارند. سپس، تمامی APKهای مربوط به آن اپلیکیشن را انتخاب کنید و روی گزینهی Select ضربه بزنید.
- روی گزینهی Install ضربه بزنید و دوباره روی پنجرهی پاپآپی که نمایش داده میشود، گزینهی Install را انتخاب کنید. صبر کنید تا برنامه نصب شود.
۳. غیرفعالکردن گوگل پلی پروتکت
گاهی اوقات، سپر امنیتی گوگل یا Google Play Protect از نصب اپلیکیشنها مانع میشود که میتواند دلایل مختلفی ازجمله شناسایی اپلیکیشن بهعنوان بدافزار یا حاوی کدهایی باشد که مستقیم یا غیرمستقیم میتوانند امنیت کاربر را بهخطر بیندازند. اگر برنامهای نصب نمیشود، سعی کنید در ابتدا با اطمینان از معتبربودن منبع دانلود و ناشر برنامه، سپر امنیتی گوگل را غیرفعال و سپس برنامه را نصب کنید. برای این کار مراحل زیر را دنبال کنید:
- گوگلپلی را باز کنید و روی عکس پروفایل خود ضربه بزنید.
- گزینهی Play Protect را انتخاب کنید.
- روی نماد چرخدندهی بالا ضربه بزنید.
- گزینهی Scan apps with Play Protect را خاموش کنید.
۴. Signکردن اپلیکیشن Signنشده
یکی از دلایل مهم نصبنشدن برنامه، تغییر یا نداشتن امضا است. برای نصب برنامهای که امضای آن فرق کرده، کافی است نسخهی قبلی را پاک و نسخهی جدید را نصب کنید. بااینحال، برای اپلیکیشنی که Sign نشده است، باید با استفاده از ZipSigner آن را Sign کنید.
- اپلیکیشن ZipSigner را از گیتهاب دانلود و نصب کنید.
- دسترسی برنامه به فضای ذخیرهسازی گوشی را از قسمت Settings > Apps > ZipSigner > Permissions > Files and media مجاز کنید.
- برنامه را باز و گزینهی Choose In/Out را انتخاب کنید. سپس، به مسیری بروید که فایل APK مدنظر در آن قرار دارد و آن را انتخاب کنید.
- درصورت تمایل، مسیر خروجی فایل را از قسمت Output به مسیر دلخواه خود تغییر دهید و درادامه، روی گزینهی Sign The File ضربه بزنید و APK جدید را نصب کنید.
۵. ریستکردن ترجیحات برنامهها (App Preferences)
گاهی اوقات، بازنشانی تنظیماتی که سیستمعامل برای اپلیکیشنها تعریف کرده است (مانند دسترسیها یا برنامههای پیشفرض)، میتواند به حل مشکل کمک کند. این بازنشانی اطلاعات برنامهها را تحتتأثیر قرار نمیدهد.
- تنظیمات گوشی را باز کنید و به قسمت Apps بروید.
- روی گزینهی سهنقطهی بالا ضربه بزنید و Reset App Preferences را انتخاب کنید و Reset را بزنید.
۶. انتقال فایل برنامه از کارت حافظه به حافظهی داخلی
اگر APK برنامه روی کارت حافظهی خارجی قرار دارد، ممکن است تجزیهی بستهی APK در اغلب مواقع به مشکل بخورد و برنامه نصب نشود. ازاینرو، فایل نصبی را به حافظهی داخلی انتقال دهید و آن را نصب کنید.
۷. پاککردن دیتا و کش Package Installer
اگر راههای بالا را امتحان کردید و به نتیجه نرسیدید، پاککردن دیتای Package Installer اندروید را نیز امتحان کنید که وظیفهی نصب APKها را برعهده دارد.
- تنظیمات گوشی را باز کنید و به قسمت Apps بروید.
- گزینهی Show system apps را از منو سهنقطهی بالا یا گزینهی Sort فعال کنید تا برنامههای سیستمی نیز نشان داده شوند.
- برنامهی Package Installer را پیدا و از منو Storage گزینه Clear Data و Clear Cache را انتخاب کنید.
۸. نصب برنامه بهصورت سیستمی ازطریق دسترسی روت
اگر برنامهای که در حال نصب آن هستید، از نوع سیستمی باشد یا نسخهای از آن نصب باشد که حذفشدنی نباشد و نصب نسخهی جدید آن با خطا مواجه شود، باید برنامه بهصورت سیستمی نصب شود. نصب برنامهی سیستمی فقط با دسترسی روت امکانپذیر است؛ ازاینرو، این روش برای افرادی که گوشی آنها دسترسی روت ندارد، کارآمد نیست.
- فایل منیجری (مانند FX) را نصب کنید که امکان دسترسی به پوشههای سیستم را میدهد.
- فایل APK را کپی کنید و به مسیر System/app بروید. اگر نسخهای از برنامه درحالحاضر روی گوشی نصب است، پوشهی برنامه را پیدا و در پوشه با همان اسم جایگزین APK قبلی کنید.
- گوشی را ریستارت کنید.
۹. غیرفعالکردن Signature Verification در اندروید
راه دیگر برای نصب اپلیکیشن برای گوشیهایی که دسترسی روت دارند، غیرفعالکردن بررسی و تأیید امضای برنامهها (Signature Verification) در سیستمعامل است. برای این کار مراحل زیر را دنبال کنید:
- گوگل پلی پروتکت را غیرفعال و برنامهی Lucky Patcher را نصب کنید.
- دسترسی روت را به برنامه بدهید و از منو همبرگری بالا گزینهی Toolbox را انتخاب کنید.
- گزینهی Patch to Android را انتخاب کنید و گزینهی Signature Verification status always true را بههمراه Disable apk Signature Verification را تیک بزنید و روی Apply کلیک کنید.
- اگر دستگاه ریستارت نشد، این کار را انجام دهید و سپس برنامه مدنظر را نصب کنید.
۱۰. راهحلهای دیگر
اگر هیچکدام از روشهای گفتهشده جواب نداد، این روشها را نیز امتحان کنید:
- فایل smdl2tmpl.asec را از پوشهی مخفی .android_secure حذف کنید.
- کارت حافظهی SD را از دستگاه خارج و حین نصب اپلیکیشن گوشی را به دستگاه خارجی دیگر متصل نکنید.
- ممکن است نصبنشدن برنامهای بهدلیل تداخل با برنامهای دیگر یا نصبنبودن پیشنیازی خاص باشد؛ بنابراین، اگر فکر میکنید برنامهای تداخل ایجاد میکند، آن را حذف کنید.