بررسی و پاسخ به مشکلات و پرسش‌های رایج

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

– ارور Disable Gradle ‘offline mode’ and sync project

مشاهده این ارور به این معنی است که گریدل شما در حالت آفلاین قرار گرفته و به دلیل نیاز به اتصال به اینترنت برای دریافت کتابخانه‌ها و ابزار مورد نیاز پروژه، لازم است به حالت آنلاین تغییر وضعیت داده شود:

فعال کردن حالت آفلاین Gradle در اندروید استودیو
فعال کردن حالت آفلاین Gradle در اندروید استودیو

اگر در پیدا کردن این گزینه مشکل دارید مطلب ۲۱ روش افزایش سرعت بیلد Gradle در اندروید استودیو قسمت فعال کردن حالت آفلاین Gradle را مطالعه کنید.

– ارور Gradle sync failed : failed to open zip file :

محیط توسعه اندروید استودیو را بسته و محتویات مسیر C:\Users\user_name\.gradle\wrapper\dists را پاک کنید. سپس مجدد اندروید استودیو را باز کرده و اجازه دهید دوباره گریدل دانلود و نصب شود. چنانچه باز هم مشکل حل نشد می‌توانید گریدل را به صورت آفلاین و دستی دانلود و نصب کنید. نحوه نصب آفلاین گریدل در مبحث آموزش ساخت پروژه در اندروید استودیو توضیح داده شده.

– اخطارهای Could not find… و Could not resolve… و یا Searched in the following locations… :

اگر اخطاری با دو عبارت فوق مشاهده کنید باید بررسی کنید در بلاک‌های dependencies (هردو بلاک) موجود در فایل build.gradle هردو مخزن google() و jcenter() و همچنین موردی که اخیرا الزامی شده و به زودی جایگزین jcenter() می‌شود، یعنی mavenCentral() تعریف شده باشد و چنانچه یک مورد تعریف شده بود، مورد دیگر را اضافه کنید. مانند زیر:

repositories {
        google()
        mavenCentral()
        jcenter()
    }

همچنین با توجه به تحریم بودن IP های ایران لازم است نسبت به تغییر IP خود اقدام کنید که در صفحه نحوه دور زدن تحریم‌های نرم افزاری توضیحات لازم ارائه شده است.

– ارورهایی مانند Unable resolve dependency for و نیاز به تغییر IP جهت دور زدن تحریم :

توضیحات مربوط به تحریم کاربران ایران و نحوه مقابله با آن، به دلیل طولانی بودن مطلب در یک صفحه جداگانه تهیه شد. لطفا به صفحه نحوه دور زدن تحریم‌های نرم افزاری مراجعه کنید.

– تبدیل ConstraintLayout به RelativeLayout یا LinearLayout :

در نسخه ۲٫۳ اندروید استودیو Layout ای که به صورت پیش فرض برای پروژه جدید ایجاد می شود از نوع ConstraintLayout می باشد. این لایه خواص جدیدی دارد که در آینده آموزش آن را منتشر خواهیم کرد اما اگر در حال حاضر قصد استفاده از سایر موارد مانند RelativeLayout دارید کافیست تگ باز و بسته لایه را جایگزین کنید. به عناون مثال android.support.constraint.ConstraintLayout را با RelativeLayout جایگزین می کنیم.

– Error:CreateProcess error=216, This version of %1 is not compatible with the version of Windows you’re running… :

ابتدا بررسی کنید اگر نسخه قدیمی جاوا را روی سیستم عامل نصب کرده اید، نسخه جدید (در فصل دوم قرار داده شده) را جایگزین کنید. سپس داخل اندروید استودیو در مسیر File -> Project Structure تیک گزینه Use Embedded JDK را برداشته و مسیری که JDK را نصب کرده اید جایگزین کنید.

– Error:Failed to find target with hash string ‘android-xx’ in [Your SDK Location] :

عدد xx نسخه API است. به عنوان مثال اگر این ارور را با android-26 بگیرید یعنی platform26 را لازم دارید و نصب نیست. اگر با وجود نصب API مربوطه باز هم ارور گرفتید ابتدا داخل SDK Manager ابزار Build tools و Platform tools را به آخرین نسخه بروزرسانی کنید. در مرحله بعد از مسیر File > Invalid Caches / Restart اقدام به حذف کش نموده و در نهایت هم یک بار پروژه را Clean و سپس Rebuild نمائید (منوی Build)

– پیغام Unable to unpack file android-sdk_r22.6.2-windows.zip: error in opening zip file. Make sure you have enough disk space on destination drive and retry :

این اخطار دلیل را نبود فضای کافی برای نصب عنوان می کند اما در اکثر مواقع برای کاربران ایرانی، به دلیل تحریم این اخطار ظاهر می شود که راه چاره استفاده از ابزار تغییر آی پی است. اگر بعد از تغییر آی پی نیز ارور رفع نشد باید تنظیمات Proxy روی اندروید استودیو از مسیر زیر اعمال شود :
Default Settings > appearance and settings > System Settings > HTTP Proxy و در انتها گزینه Auto Detect یا Manual Proxy و وارد کردن مشخصات پروکسی مربوطه (اگر در خصوص نحوه تنظیم کردن روکسی اطلاعی ندارید لطفا سرچ کنید)

– Failed to resolve: junit:junit:4.xx و طول کشیدن بیلد شدن پروژه :

کتابخانه junit با توجه به اینکه بجز مواقع خاص بلا استفاده است، برای سادگی کار بهتر است بجای تغییر آی پی جهت دریافت از مخزن آنلاین، خط زیر را از build.gradle حذف کرده و مجدد سینک کنید تا به کلی از پروژه حذف گردد.

testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.x.x'

– Genymotion (یا سایر شبیه سازها) با اینکه در حال اجرا هست اما در لیست Connected Devices نمایش داده نمی‌شود :

این مساله به دلیل تداخلی است که در پورت‌ها رخ می‌دهد و این با این ارور برخورد می‌کنید:

sdk\platform-tools\adb.exe start-server’ failed — run manually if necessary

دیوایس جنی موشن را ببندید. Task Manager ویندوز را باز کرده، adb.exe را end task کنید. حالا قبل از اینکه مجدد دیوایس مجازی را استارت کنید، دکمه Run اندروید استودیو را بزنید و صبر کنید تا پیغام عدم شناسایی دیوایس متصل شده بدهد. پنجره را بسته و دیوایس جنی موشن را استارت کنید. حالا با اجرای مجدد Run، دیوایس نمایش داده می‌شود.

– قرمز شدن R بعد از ساخت پروژه :

پروژه کامل بیلد نشده. روی دکمه‌ی Make کلیک کنید تا پروژه مجدد ساخته شود. یا Rebuild کنید (منوی Build).

– عدم نمایش صفحه‌ی Preview :

در نوار تنظیمات Preview ورژن API را تغییر دهید (فقط از API هایی می‌توانید استفاده کنید که در SDK نصب شده باشند)

مشکل نمایش Preview در اندروید استودیو

اگر این روش تاثیری نداشت، عبارتی مانند “Android studio preview not showing” را گوگل کنید

این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید
دوره آموزش برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید

آموزش‌ها در دو دسته «پایه» و «تکمیلی» منتشر می‌شوند.
آموزش‌های پایه شامل مباحث اصلی و آموزش‌های تکمیلی مطالبی است که می‌بایست در کنار مطالب اصلی از آنها استفاده کنیم.
شما با دریافت این دوره به تمامی آموزش‌های غیر رایگان و رایگان موجود در وب سایت دسترسی دارید که تخفیفی برای آموزش‌های غیر رایگان نیز درنظر گرفته شده. این پکیج به دو صورت دانلودی و ارسال پستی ارائه می‌گردد.
با خرید این دوره، به تمامی آموزش‌های غیر رایگانی که در آینده منتشر می‌شود نیز به صورت رایگان دسترسی خواهید داشت!

یک دیدگاه بنویسید

پرسش‌های زیر تایید و پاسخ داده نـــخواهند شد:
۱: جزء موارد مطرح شده در صفحات مشکلات و پرسش‌های رایج و بروزرسانی‌های محتوای آموزشی باشد
۲: سوال قبلا توسط کاربران در دیدگاه‌ها مطرح و پاسخ داده شده باشد
۳: پرسش خارج از مبحث آموزشی موجود در این صفحه باشد

  • مهدی برون سرا گفت:

    سلام خسته نباشین . من در sqlite اطلاعاتی را ذخیره کردم.اطلاعات به درستی در sqlite ذخیره میشود .اما موقع خواندن اطلاعات با ارور query در تابع getdata مواجه میشم.میتونین راهنماییم کنین؟

  • صدرا آذری گفت:

    سلام و عرض خسته نباشیدبه شما

    ببخشید چرا وقتی من واردبرنامه اندروید استیدیو میشوم این ارور را نمایش میدهد(Could not find com.android.tools.build:gradle:4.2.1.)
    و همچنین پوشه bulid.gradle(mudole:app) وجود ندارد؟
    با تشکر

  • محمد گفت:

    سلام آقای مهندس من میخوام اندروید استودیو رو نصب کنم تا دانلود jdk و بقیه چیز های دیگه هم میره ولی وست دانلود این ارور میاد the following sdk componenst Were not این یه خطش هست بعد دوتا گزینه داره یکی کنسل یکی دانلود دوباره مشکل از چی هست ممنون میشم جواب بدید

  • حمید گفت:

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

  • حسام بابایی گفت:

    سلام وقت بخیر . خواهش میکنم این مشکل من رو حل کنید. اکثر وقتها که میخوام برنامه رو run کنم در حال ران شدن روی این خط کد دیگه تکون نمیخوره اگه ده دقیقه هم منتظر بمونم run نمیشه : task :app:compileDebugJavaWithJavac تا کامپیوتر رو رستارت نکنم و اندروید استودیو رو رستارت و ریبیلد نکنم برنامه run نمیشه

    • سیدمهدی مطهری گفت:

      سلام. قبل اینکه بخواید مشکلتون رو مطرح کنید گوگل کنید. به احتمال زیاد به جواب میرسید و لازم نیست منتظر راهنمایی بقیه بمونید.
      ارور رو گوگل کنید اولین نتیجه این هست:
      https://stackoverflow.com/q/33404552
      اولین پاسخ که تیک تایید خورده رو بررسی کنید

  • کمال بهرامی گفت:

    سلام و وقت بخیر خدمت شما.
    من به تازگی اندروید استودیو رو نصب کردم و هنگام ایجاد پروژه جدید به این خطا برخورد میکنم:
    Could not find com.android.tools.build:gradle:4.2.1.
    لطفا راهنمایی بفرمایید.
    باتشکر

  • آراد گفت:

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

  • معین گفت:

    سلام و خسته نباشی
    من در هر بار ران گرفتن با پیام زیر رو به رو می شوم
    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ‘:app:checkDebugAarMetadata’.
    > Could not resolve all files for configuration ‘:app:debugRuntimeClasspath’.
    > Could not resolve com.android.support.constraint:constraint-layout:2.0.4.

  • امیر فراهانی گفت:

    سلام مهندس این خطا خیلی درگیرم کرده به نتیجه نرسیدم
    https://s4.uupload.ir/files/u1ntitled_6ugz.png

  • آراد گفت:

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

    • سیدمهدی مطهری گفت:

      سوال اولتون مبهم بود. متن کامل ارور رو بدید (یا اسکرین شات)
      مورد دوم هم احتمالا مانیفست رو دستکاری کردید. این خط باید برای اکتیویتی اصلی پروژه وجود داشته باشه:

      • آراد گفت:

        سلام دوباره, سه تا اسکرین شات از محیط اندروید استودیو گرفتم یکی از کد های مانیفست و دو تا عکس دیگه ارور ها هست.
        عکس اول : https://s4.uupload.ir/files/01_wr5i.jpg
        عکس دوم : https://s4.uupload.ir/files/02_b4il.jpg
        عکس سوم : https://s4.uupload.ir/files/03_nh1b.jpg

        • سیدمهدی مطهری گفت:

          عذرخواه در پاسخ قبلی کد رو کپی نکرده بودم. همونطور که در اسکرین شات هم مشخصه در مانیفست تگ مربوط به MainActivity ناقص هست و تگ intent-filter داخلش نیست. یه پروژه دیگه بسازید و مانیفستش رو با این مانیفست مقایسه کنید متوجه میشید چه قسمتی رو اشتباهی حذف کردید.
          ارور کانکشن هم مربوط به ارتباط با مخزن آنلاین هستش. در همین صفحه توضیحات مربوط به تغییر IP رو مطالعه کنید

  • Kourosh گفت:

    آقای مطهری ممنونم بابت پیگیریتون لینک اسکرینا: https://s4.uupload.ir/files/screenshot_(727)_4d9b.png و اینکه اروری میده که میگه پروژه گریدل بیس نیست