رایج ترین خطاها در طراحی اپلیکیشن اندروید و راه حل رفع آن ها | باشگاه اپلیکیشن
زمان مطالعه: 7 دقیقه
رایج ترین خطاها در طراحی اپلیکیشن اندروید و راه حل رفع آن ها
برنامهنویسها و توسعهدهندگان اپلیکیشن هنگام طراحی و ساخت برنامههای اندروید با خطا و چالشهای مختلفی مواجه میشوند. این خطاها هر چه سریعتر رفع شوند، فرایند طراحی اپلیکیشن بهتر پیش میرود....
۲۰
مهر
تیم باشگاه اپلیکیشن
برنامهنویسها و توسعهدهندگان اپلیکیشن هنگام طراحی و ساخت برنامههای اندروید با خطا و چالشهای مختلفی مواجه میشوند. این خطاها هر چه سریعتر رفع شوند، فرایند طراحی اپلیکیشن بهتر پیش میرود. تعداد خطاها در طراحی اپلیکیشن اندروید بسیار زیاد است و بعضی از آنها جزء خطاهایی هستند که بسیار تکرار میشوند. به همین خاطر در این مطلب رایج ترین خطاها در طراحی اپلیکیشن اندروید را معرفی میکنیم. همچنین راه حل هر یک از خطاها را نیز برای شما بیان میکنیم تا به راحتی بتوانید آنها را رفع کنید.
خطاهای رایج در طراحی اپلیکیشن اندروید و راه حل رفع آن ها
1. خطای رایج R.layout.main Cannot Be Found / Cannot Resolve Symbol R
این خطا زمانی رخ میدهد که اندروید استودیو نمیتواند به درستی فایل R.java را ایجاد کند. وقتی اندروید استودیو با خطای R.layout مواجه میشود، معمولا میگوید تمام فایلهای منبع طرحبندی نیز دچار مشکل شدهاند. همین قضیه باعث میشود تشخیص منبع خطا دشوار شود.
راه حل رفع این خطا در طراحی اپلیکیشن اندروید:
برای رفع این مشکل پروژه را پاک کنید و یک مرتبه دیگر آن را بازسازی کنید. اگر دفعه اول نتیجه نداد، چند مرتبه این کار را تکرار کنید تا خطا رفع شود. اگر با این کار هم نتیجه نگرفتید، شاید علت خطا ناهماهنگی بین اندروید استودیو و طرحبندی پروژه باشد. پس به نوار ابزار اندروید استودیو بروید و به ترتیب گزینههای File، Invalidate Caches/Restart و Invalidate and Restart را انتخاب کنید تا این ارور رفع شود.
2. خطای Choose a Valid JDK Directory
اگر هنگام طراحی اپلیکیشن با خطای JDK برخورد کردید یعنی اندروید استودیو نمیتواند تشخیص دهد که JDK کجا نصب شده است.
راه حل رفع خطا:
– از نوار ابزار اندروید استودیو ابتدا به قسمت File سپس به قسمت Project structure بروید.
– از منوی سمت چپ SDK Location را انتخاب کنید.
– چکباکسی که در آن JDK قرار دارد را بررسی کنید و مطمئن شوید آن چکباکس انتخاب شده باشد.
3. خطای رایج Installing APK
برای تست برنامه باید دستگاه توسعه اپلیکیشن اندروید را به تبلت یا گوشی هوشمند متصل کنید. اما در این حین ممکن است با خطای Installing APK را مواجه شوید یا حتی ممکن است دستگاهتان در پنجره Select Deployment Target دیده نشود. برای حل این مشکلات، اقدامات زیر را انجام دهید.
رفع خطای Installing APK در طراحی اپلیکیشن اندروید:
– چک کنید قسمت عیبیابی USB فعال باشد.
– صفحه تبلت یا گوشی هوشمند را چک کنید و ببینید از شما اجازه اتصال میخواهد یا نه.
– مطمئن شوید درایور USB به طور صحیح نصب شده است.
– مطمئن شوید دستگاهتان شرایط حداقلی SDK پروژه را برآورده میکند.
– فرایند Android Debug Bridge را ری استارت کنید.
4. خطای INSTALL_FAILED_INSUFFICIENT_STORAGE
زمانی که بخواهید اپلیکیشن را روی تبلت یا گوشیهای هوشمند اجرا کنید اما حافظه کافی برای نصب آن وجود نداشته باشد این ارور را مشاهده میکنید. این خطا به این معنا است که حجم برنامهتان زیاد است و نمیتواند به خوبی نصب شود.
اما اگر میخواهید پروژه خود را روی AVD نصب کنید و این خطا را مشاهده میکنید، باید بررسی کنید که به AVD چه فضایی اختصاص دادهاید. برای این کار اقدامات زیر را انجام دهید.
راه حل رفع خطا:
– AVD Manager را باز کنید.
– روی گزینه Edit this AVD کلیک کنید.
– در پنجرهای که باز میشود گزینه Show Advanced Settings را انتخاب کنید.
– به بخش Memory and Storage بروید.
این بخش انواع حافظه را که به این AVD اختصاص دادهاید نشان میدهد. حافظهها شامل RAM، VM Heap، حافظه داخلی و کارت SD میشوند. آنها را افزایش دهید تا خطای بالا رفع شود.
5. خطای رایج ActivityNotFoundException
زمانی با این خطا برخورد میکنید که فراخوانی اینتنت یا startActivity شکست میخورد چرا که Activity نمیتواند اینتنت داده شده را اجرا کند.
راه حل:
برای حل این مشکل فایل منیفست را باز کنید، چک کنید که تمام اکتیویتیها را به درستی تعریف کردهاید. دقت کنید که هر اکتیویتی را با نام کامل کلاس یا یک نقطه برای نام پکیج معرفی کنید.
6. خطای ClassCastException
این خطا به جاوا مربوط میشود و به شما امکان میدهد متغیرها را از یک نوع به نوع دیگری تبدیل کنید. یعنی میتوانید دو کلاس با ساختار متفاوت را به هم تبدیل کنید.
رفع این خطا در طراحی اپلیکیشن اندروید:
برای حل این مشکل به اندروید استودیو دستور دهید فایلهای طرحبندی را بار دیگر بازسازی کند.
7. خطای NullPointerException
در جاوا وقتی یک متغیر مرجع تعریف میکنید در واقع یک اشارهگر برای آن ایجاد میکنید. با اختصاص مقدار صفر به مرجع آن شیء، اشاره میکنید که آن شیء به یک منبع ناشناخته داده اشاره میکند. مقادیر صفر میتوانند در کدگذاری برخی از طراحیها مفید باشند اما وقتی با خطای NullPointerException مواجه میشوید یعنی از مرجعی استفاده کردهاید که به یک مقدار خالی اشاره میکند.
راه حل:
برای رفع این مشکل از Logcat Monitor استفاده کنید که محل دقیق خطا را مشخص کند. سپس در آن قسمت متغیر را قرار دهید تا این خطا رفع شود.
8. خطای رایج NetworkOnMainThreadException
این خطا زمانی اتفاق میافتد که اپلیکیشن تلاش میکند عملیات شبکهسازی را در main thread انجام دهد. عملیاتی مانند ارسال درخواستهای API، اتصال به دیتابیس یا دانلود یک فایل. این عملیاتها بسیار وقتگیر هستند و main thread را بلاک میکنند. پس باعث ایجاد ارور NetworkOnMainThreadException خواهند شد.
رفع این خطا در طراحی اپلیکیشن اندروید:
هنگامی که با این نوع خطا روبهرو میشوید، کد شبکهای که در main thread در حال اجرا است را به یک thread جداگانه منتقل کنید.
9. خطای Too Many Field References….Max is 65,536
زمانی که تعداد ارجاعات اپلیکیشن شما بیش از 65,536 شود، با این خطا مواجه میشوید. برای رفع آن از دو روش زیر استفاده کنید.
راه حل:
– تعداد ارجاعات به اپلیکیشن را کاهش دهید.
– با فعال کردن multidex، اپلیکیشن را طوری تنظیم کنید که از دو فایل DEX یا بیشتر استفاده کند.
10. خطای رایج Only the original thread that created a view hierarchy can touch its views
در اندروید تنها از طریق main thread میتوانید UI را آپدیت کنید. اگر از thread های دیگری برای این کار استفاده کنید، با این خطا برخورد خواهید کرد.
راهکار حل این خطا در طراحی اپلیکیشن اندروید:
برای رفع این مشکل، آن قسمتی که قصد به روزرسانی UI دارد را انتخاب کنید و به runOnUiThread منتقل کنید.
11. خطای رایج Activity has leaked window that was originally added here
وقتی دیالوگهای یک اکتیویتی در حال اجرا باشند و شما همزمان بخواهید از آن اکتیویتی خارج شوید با این خطا مواجه میشوید.
رفع این مشکل در طراحی اپلیکیشن اندروید:
برای رفع این مشکل اکتیویتی را باز کنید، دیالوگها را به طور کامل ببندید سپس از آن خارج شوید.
12. خطای OutofMemoryError
این خطا زمانی اتفاق میافتد که اپلیکیشن شما به میزان معینی حافظه نیاز دارد اما سیستم نمیتواند آن را تامین کند. مواردی مانند کمبود حافظه، بارگزاری عکس با حجم زیاد، ارجاعات طولانی و … باعث ایجاد این خطا میشوند.
راه حل:
برای رفع این مشکل باید بررسی کنید و دلیل ایجاد این خطا را متوجه شوید. اندروید استودیو قسمتی دارد که به شما کمک میکند متوجه شوید اپلیکیشن چگونه از حافظه سیستم استفاده میکند. برای بررسی آن از نوار ابزار اندروید استودیو وارد قسمت View سپس Tools Window شوید و به بررسی حافظه بپردازید و هر جا مشکلی بود آن را رفع کنید.
اگر با مطالعه مطالب بالا باز هم نتوانستید خطای اپلیکیشن اندروید خود را رفع کنید، میتوانید از پشتیبانی باشگاه اپلیکیشن در واتساپ کمک بگیرید.
جمعبندی
اگر برنامهنویس هستید یا در حوزه ساخت اپلیکیشن فعالیت میکنید، مطالعه مطلب بالا میتواند بسیار برای شما مفید باشد. در این مطلب سعی کردیم 12 خطای رایج در طراحی اپلیکیشن اندروید را معرفی کنیم و راه حلهای آنها را نیز به طور کامل توضیح دهیم. آشنایی با این خطاها به شما کمک میکند با صرف زمان کمتری، اپلیکیشنهایی باکیفیت و کاربردی طراحی کنید.
تیم باشگاه اپلیکیشن
برنامهنویسها و توسعهدهندگان اپلیکیشن هنگام طراحی و ساخت برنامههای اندروید با خطا و چالشهای مختلفی مواجه میشوند. این خطاها هر چه سریعتر رفع شوند، فرایند طراحی اپلیکیشن بهتر پیش میرود. تعداد خطاها در طراحی اپلیکیشن اندروید بسیار زیاد است و بعضی از آنها جزء خطاهایی هستند که بسیار تکرار میشوند. به همین خاطر در این مطلب رایج ترین خطاها در طراحی اپلیکیشن اندروید را معرفی میکنیم. همچنین راه حل هر یک از خطاها را نیز برای شما بیان میکنیم تا به راحتی بتوانید آنها را رفع کنید.
آنچه خواهید خواند
خطاهای رایج در طراحی اپلیکیشن اندروید و راه حل رفع آن ها
1. خطای رایج R.layout.main Cannot Be Found / Cannot Resolve Symbol R
این خطا زمانی رخ میدهد که اندروید استودیو نمیتواند به درستی فایل R.java را ایجاد کند. وقتی اندروید استودیو با خطای R.layout مواجه میشود، معمولا میگوید تمام فایلهای منبع طرحبندی نیز دچار مشکل شدهاند. همین قضیه باعث میشود تشخیص منبع خطا دشوار شود.
راه حل رفع این خطا در طراحی اپلیکیشن اندروید:
برای رفع این مشکل پروژه را پاک کنید و یک مرتبه دیگر آن را بازسازی کنید. اگر دفعه اول نتیجه نداد، چند مرتبه این کار را تکرار کنید تا خطا رفع شود. اگر با این کار هم نتیجه نگرفتید، شاید علت خطا ناهماهنگی بین اندروید استودیو و طرحبندی پروژه باشد. پس به نوار ابزار اندروید استودیو بروید و به ترتیب گزینههای File، Invalidate Caches/Restart و Invalidate and Restart را انتخاب کنید تا این ارور رفع شود.
2. خطای Choose a Valid JDK Directory
اگر هنگام طراحی اپلیکیشن با خطای JDK برخورد کردید یعنی اندروید استودیو نمیتواند تشخیص دهد که JDK کجا نصب شده است.
راه حل رفع خطا:
– از نوار ابزار اندروید استودیو ابتدا به قسمت File سپس به قسمت Project structure بروید.
– از منوی سمت چپ SDK Location را انتخاب کنید.
– چکباکسی که در آن JDK قرار دارد را بررسی کنید و مطمئن شوید آن چکباکس انتخاب شده باشد.
3. خطای رایج Installing APK
برای تست برنامه باید دستگاه توسعه اپلیکیشن اندروید را به تبلت یا گوشی هوشمند متصل کنید. اما در این حین ممکن است با خطای Installing APK را مواجه شوید یا حتی ممکن است دستگاهتان در پنجره Select Deployment Target دیده نشود. برای حل این مشکلات، اقدامات زیر را انجام دهید.
رفع خطای Installing APK در طراحی اپلیکیشن اندروید:
– چک کنید قسمت عیبیابی USB فعال باشد.
– صفحه تبلت یا گوشی هوشمند را چک کنید و ببینید از شما اجازه اتصال میخواهد یا نه.
– مطمئن شوید درایور USB به طور صحیح نصب شده است.
– مطمئن شوید دستگاهتان شرایط حداقلی SDK پروژه را برآورده میکند.
– فرایند Android Debug Bridge را ری استارت کنید.
4. خطای INSTALL_FAILED_INSUFFICIENT_STORAGE
زمانی که بخواهید اپلیکیشن را روی تبلت یا گوشیهای هوشمند اجرا کنید اما حافظه کافی برای نصب آن وجود نداشته باشد این ارور را مشاهده میکنید. این خطا به این معنا است که حجم برنامهتان زیاد است و نمیتواند به خوبی نصب شود.
اما اگر میخواهید پروژه خود را روی AVD نصب کنید و این خطا را مشاهده میکنید، باید بررسی کنید که به AVD چه فضایی اختصاص دادهاید. برای این کار اقدامات زیر را انجام دهید.
راه حل رفع خطا:
– AVD Manager را باز کنید.
– روی گزینه Edit this AVD کلیک کنید.
– در پنجرهای که باز میشود گزینه Show Advanced Settings را انتخاب کنید.
– به بخش Memory and Storage بروید.
این بخش انواع حافظه را که به این AVD اختصاص دادهاید نشان میدهد. حافظهها شامل RAM، VM Heap، حافظه داخلی و کارت SD میشوند. آنها را افزایش دهید تا خطای بالا رفع شود.
5. خطای رایج ActivityNotFoundException
زمانی با این خطا برخورد میکنید که فراخوانی اینتنت یا startActivity شکست میخورد چرا که Activity نمیتواند اینتنت داده شده را اجرا کند.
راه حل:
برای حل این مشکل فایل منیفست را باز کنید، چک کنید که تمام اکتیویتیها را به درستی تعریف کردهاید. دقت کنید که هر اکتیویتی را با نام کامل کلاس یا یک نقطه برای نام پکیج معرفی کنید.
6. خطای ClassCastException
این خطا به جاوا مربوط میشود و به شما امکان میدهد متغیرها را از یک نوع به نوع دیگری تبدیل کنید. یعنی میتوانید دو کلاس با ساختار متفاوت را به هم تبدیل کنید.
رفع این خطا در طراحی اپلیکیشن اندروید:
برای حل این مشکل به اندروید استودیو دستور دهید فایلهای طرحبندی را بار دیگر بازسازی کند.
7. خطای NullPointerException
در جاوا وقتی یک متغیر مرجع تعریف میکنید در واقع یک اشارهگر برای آن ایجاد میکنید. با اختصاص مقدار صفر به مرجع آن شیء، اشاره میکنید که آن شیء به یک منبع ناشناخته داده اشاره میکند. مقادیر صفر میتوانند در کدگذاری برخی از طراحیها مفید باشند اما وقتی با خطای NullPointerException مواجه میشوید یعنی از مرجعی استفاده کردهاید که به یک مقدار خالی اشاره میکند.
راه حل:
برای رفع این مشکل از Logcat Monitor استفاده کنید که محل دقیق خطا را مشخص کند. سپس در آن قسمت متغیر را قرار دهید تا این خطا رفع شود.
8. خطای رایج NetworkOnMainThreadException
این خطا زمانی اتفاق میافتد که اپلیکیشن تلاش میکند عملیات شبکهسازی را در main thread انجام دهد. عملیاتی مانند ارسال درخواستهای API، اتصال به دیتابیس یا دانلود یک فایل. این عملیاتها بسیار وقتگیر هستند و main thread را بلاک میکنند. پس باعث ایجاد ارور NetworkOnMainThreadException خواهند شد.
رفع این خطا در طراحی اپلیکیشن اندروید:
هنگامی که با این نوع خطا روبهرو میشوید، کد شبکهای که در main thread در حال اجرا است را به یک thread جداگانه منتقل کنید.
9. خطای Too Many Field References….Max is 65,536
زمانی که تعداد ارجاعات اپلیکیشن شما بیش از 65,536 شود، با این خطا مواجه میشوید. برای رفع آن از دو روش زیر استفاده کنید.
راه حل:
– تعداد ارجاعات به اپلیکیشن را کاهش دهید.
– با فعال کردن multidex، اپلیکیشن را طوری تنظیم کنید که از دو فایل DEX یا بیشتر استفاده کند.
10. خطای رایج Only the original thread that created a view hierarchy can touch its views
در اندروید تنها از طریق main thread میتوانید UI را آپدیت کنید. اگر از thread های دیگری برای این کار استفاده کنید، با این خطا برخورد خواهید کرد.
راهکار حل این خطا در طراحی اپلیکیشن اندروید:
برای رفع این مشکل، آن قسمتی که قصد به روزرسانی UI دارد را انتخاب کنید و به runOnUiThread منتقل کنید.
11. خطای رایج Activity has leaked window that was originally added here
وقتی دیالوگهای یک اکتیویتی در حال اجرا باشند و شما همزمان بخواهید از آن اکتیویتی خارج شوید با این خطا مواجه میشوید.
رفع این مشکل در طراحی اپلیکیشن اندروید:
برای رفع این مشکل اکتیویتی را باز کنید، دیالوگها را به طور کامل ببندید سپس از آن خارج شوید.
12. خطای OutofMemoryError
این خطا زمانی اتفاق میافتد که اپلیکیشن شما به میزان معینی حافظه نیاز دارد اما سیستم نمیتواند آن را تامین کند. مواردی مانند کمبود حافظه، بارگزاری عکس با حجم زیاد، ارجاعات طولانی و … باعث ایجاد این خطا میشوند.
راه حل:
برای رفع این مشکل باید بررسی کنید و دلیل ایجاد این خطا را متوجه شوید. اندروید استودیو قسمتی دارد که به شما کمک میکند متوجه شوید اپلیکیشن چگونه از حافظه سیستم استفاده میکند. برای بررسی آن از نوار ابزار اندروید استودیو وارد قسمت View سپس Tools Window شوید و به بررسی حافظه بپردازید و هر جا مشکلی بود آن را رفع کنید.
اگر با مطالعه مطالب بالا باز هم نتوانستید خطای اپلیکیشن اندروید خود را رفع کنید، میتوانید از پشتیبانی باشگاه اپلیکیشن در واتساپ کمک بگیرید.
جمعبندی
اگر برنامهنویس هستید یا در حوزه ساخت اپلیکیشن فعالیت میکنید، مطالعه مطلب بالا میتواند بسیار برای شما مفید باشد. در این مطلب سعی کردیم 12 خطای رایج در طراحی اپلیکیشن اندروید را معرفی کنیم و راه حلهای آنها را نیز به طور کامل توضیح دهیم. آشنایی با این خطاها به شما کمک میکند با صرف زمان کمتری، اپلیکیشنهایی باکیفیت و کاربردی طراحی کنید.