گزارش یک اشکال

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

برای اطمینان از عدم گزارش اشکالی که قبلاً رفع شده است، مطمئن شوید که از آخرین نسخه ابزارها استفاده می‌کنید. همچنین می‌توانید مشکلات مشابه را در ردیاب Android Studio جستجو کنید تا ببینید آیا مشکلی که با آن مواجه هستید قبلاً گزارش شده است یا خیر.

نحوه گزارش یک باگ

برای گزارش یک اشکال، مراحل زیر را دنبال کنید:

  1. برای باز کردن گزارش اشکال از Android Studio، راهنما > ارسال بازخورد را انتخاب کنید.

    این ساده‌ترین راه برای شروع یک اشکال است، زیرا گزارش اشکال را با نسخه Android Studio، نسخه Kotlin یا Java شما و اطلاعات سیستمی که برای بازتولید صحیح مشکل مورد نیاز است، پر می‌کند.

    همچنین می‌توانید اشکال خود را در اینجا ثبت کنید و اطلاعات نسخه را خودتان اضافه کنید.

  2. یک گزارش تشخیصی پیوست کنید تا بتوانیم مشکل شما را رفع کنیم. برای ایجاد یک فایل فشرده گزارش تشخیصی، روی راهنما > جمع‌آوری گزارش‌ها و داده‌های تشخیصی کلیک کنید.

  3. مراحل دقیق برای بازتولید مشکل را شرح دهید. تا حد امکان اطلاعات را ارسال کنید، از جمله تکه‌های کد، یک پروژه GitHub که می‌تواند برای بازتولید اشکال مورد استفاده قرار گیرد، و اسکرین‌شات‌ها یا ضبط‌هایی از آنچه مشاهده می‌کنید.

  4. موضوع را با جزئیات شرح دهید. نتیجه ای را که انتظار داشتید و آنچه را که در عوض مشاهده کردید، توضیح دهید.

  5. یک عنوان توصیفی برای گزارش اشکال انتخاب کنید. استفاده از عنوان توصیفی تر، مرتب سازی بر اساس شماره را آسان تر می کند.

برای برخی از اشکالات، به اطلاعات اضافی نیاز داریم، همانطور که در بخش های زیر توضیح داده شده است:

جزئیات مربوط به اشکالات Android Studio

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

اگر IDE هنگ کرد

اگر به نظر می‌رسد که خود IDE بسیار کند یا کاملاً منجمد شده است، چند تا thread dump همانطور که در این صفحه توضیح داده شده است ایجاد کنید و آنها را به گزارش اشکال متصل کنید. thread dumps نشان می دهد که IDE چه کاری انجام می دهد که باعث کاهش سرعت آن می شود.

اگر IDE کند است اما ثابت نیست، فایل idea.log را به گزارش اشکال خود پیوست کنید. برای پیوست کردن فایل، Help > Collect Logs and Diagnostic Data یا Help > Show Log in Files ( راهنما > Show Log in Finder در macOS) را انتخاب کنید. این فایل نشان می دهد که آیا IDE در حال پرتاب خطا در گزارش است یا خیر.

از پروفایل های CPU برای تشخیص کندی استفاده کنید

اگر در Android Studio دچار کندی هستید، نمایه‌های CPU گاهی اوقات می‌توانند به تشخیص این مشکل کمک کنند.

برای گرفتن نمایه CPU با استفاده از افزونه Android Studio Performance Testing مراحل زیر را دنبال کنید:

  1. افزونه را نصب کنید.

    • در Android Studio، عبارت Performance Testing را در بازار افزونه ها جستجو کنید.
    • همچنین، می‌توانید یک نسخه سازگار با Android Studio را از وب‌سایت افزونه دانلود کنید.
  2. پروفایل CPU را ایجاد کنید.

    1. زمانی که اندروید استودیو کند به نظر می‌رسد، Start CPU Usage Profiling را انتخاب کنید.
    2. چند عمل را تکرار کنید که تأخیر برای آنها مشکل دارد (تکمیل کد، تایپ کردن و انتظار برای رسیدن به برجسته کردن، و غیره).
    3. روی Stop Usage Profiling کلیک کنید.
  3. فایل پروفایل را به اشتراک بگذارید

    بالونی ظاهر می‌شود که نام فایل عکس فوری CPU را ارائه می‌کند که از فرمت snapshot-NNN پیروی می‌کند. آن فایل عکس فوری را در گزارش اشکال خود به اشتراک بگذارید.

اگر حافظه IDE تمام شود

گاهی اوقات بازتولید و گزارش مشکلات حافظه در Android Studio دشوار است. برای کمک به حل این مشکل، Android Studio شامل یک گزارش استفاده از حافظه است که می توانید آن را برای تیم Android Studio ارسال کنید تا به شناسایی منبع مشکلات حافظه کمک کند.

گزارش استفاده از حافظه را اجرا کنید

برای اجرای گزارش استفاده از حافظه، مراحل زیر را دنبال کنید:

  1. از نوار منو روی Help > Analyze Memory Usage کلیک کنید.

    Android Studio هیپ را تخلیه می کند و از شما می خواهد که IDE را مجددا راه اندازی کنید. اگر IDE را مجددا راه اندازی کنید، تجزیه و تحلیل heap dump بلافاصله شروع می شود. در غیر این صورت، دفعه بعد که Android Studio را اجرا می‌کنید، تجزیه و تحلیل heap dump شروع می‌شود. در هر صورت، همانطور که در شکل 1 نشان داده شده است، پس از آماده شدن گزارش استفاده از حافظه برای بررسی، IDE به شما اطلاع می دهد.

    اعلانی که نشان می دهد گزارش استفاده از حافظه آماده بازبینی است
    شکل 1. اعلان گزارش استفاده از حافظه.
  2. گزارش بررسی را کلیک کنید.

    قبل از ارسال گزارش، می‌توانید اطلاعات موجود را مرور کنید:

    گزارش استفاده از حافظه
    شکل 2. تجزیه و تحلیل گزارش استفاده از حافظه.
  3. پس از پایان بررسی، محتوای گزارش را در یک فایل کپی کنید و زمانی که اشکال خود را ثبت کردید، آن فایل را پیوست کنید.

    ارسال اطلاعات گزارش از این طریق به تیم Android Studio اجازه می‌دهد تا ضمن بررسی مشکلات حافظه شما، با استفاده از ردیاب مشکل با شما ارتباط برقرار کند.

اگر IDE از کار بیفتد یا استثناهایی ایجاد کند

برای انواع دیگر خرابی‌ها، فایل idea.log پیدا شده را با انتخاب Help > Collect Logs and Diagnostic Data یا Help > Show Log in Files ( راهنما > Show Log in Finder در macOS) پیوست کنید.

یک روکش نخ ایجاد کنید

یک thread dump چاپی از تمام رشته های در حال اجرا در JVM است. برای هر رشته، پرینت تمام stackframe ها را شامل می شود. این کار باعث می‌شود که مشاهده کنید IDE مشغول انجام چه کاری است، به‌خصوص اگر چند thread dump با فاصله چند ثانیه ایجاد کنید.

وقتی اشکالات را گزارش می‌کنید که در آن IDE به شدت مشغول یک CPU متصل است یا به نظر می‌رسد IDE منجمد شده است، یک thread dump می‌تواند مشخص کند چه کدی کار زیادی انجام می‌دهد یا کدام رشته‌ها برای منابع رقابت می‌کنند و باعث بن‌بست می‌شوند.

JDK با ابزاری به نام jstack ارسال می‌شود که می‌تواند برای تولید thread dump استفاده شود. ابتدا شناسه فرآیند (PID) فرآیند Android Studio را پیدا کنید. برای این کار از دستور jps استفاده کنید:

در لینوکس یا macOS:

jps -mv | grep studio

در ویندوز:

jps -mv | findstr studio

این یک خط طولانی را چاپ می کند، مانند:

$ jps -mv | grep studio
37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...

اولین شماره (37605، در این مثال) شناسه فرآیند است.

سپس یک Thread Dump ایجاد کنید و آن را در یک فایل dump.txt ذخیره کنید:

jstack -l pid >> dump.txt

اگر این کار جواب نداد، راه‌های دیگری برای پلتفرم خاص وجود دارد که می‌توانید یک thread dump ایجاد کنید. برای دستورالعمل های دقیق، به پشتیبانی IntelliJ مراجعه کنید.

جزئیات مربوط به ابزارهای ساخت و اشکالات Gradle

برای گزارش یک اشکال برای ابزارهای ساخت یا Gradle، یک پروژه واقعی یا نمونه را ضمیمه کنید که این مشکل را نشان می دهد تا اطمینان حاصل شود که تمام اطلاعات مورد نیاز ضبط شده است. قبل از اشتراک گذاری، هرگونه اطلاعات حساس را حذف کنید.

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

  • نسخه پلاگین اندروید Gradle:

    1. فایل > ساختار پروژه را انتخاب کنید.
    2. روی Project کلیک کنید.
    3. نسخه پلاگین Android Gradle را پیدا کنید.
  • نسخه Gradle:

    1. فایل > ساختار پروژه را انتخاب کنید.
    2. روی Project کلیک کنید.
    3. نسخه Gradle را پیدا کنید.
  • نسخه اندروید استودیو:

    1. راهنما > درباره را انتخاب کنید.
    2. نسخه اندروید استودیو را پیدا کنید.

علاوه بر این، در صورت لزوم، اطلاعات زیر را نیز درج کنید:

  • اگر رفتاری به طور غیرمنتظره ای از نسخه قبلی به نسخه فعلی تغییر کرده است، هر دو نسخه را نشان دهید.
  • اگر ساخت با خطا شکست خورد، بیلد را از خط فرمان با گزینه --stacktrace اجرا کنید (مانند ./gradlew <task> --stacktrace ) و یک stack trace را در گزارش اشکال خود ارائه دهید.
  • اگر ساخت بیش از حد انتظار طول کشید، یکی از موارد زیر را امتحان کنید:
    • ./gradlew <task> --scan را اجرا کنید و اسکن ساخت Gradle ایجاد شده را اسکن کنید و در گزارش اشکال خود به اشتراک بگذارید.
    • ./gradlew <task> -Pandroid.enableProfileJson=true اجرا کنید و فایل های Chrome-trace ایجاد شده در فهرست <root-project>/build/android-profile را به اشتراک بگذارید.

جزئیات مربوط به اشکالات شبیه ساز اندروید

برای استفاده از کنترل‌های توسعه‌یافته شبیه‌ساز برای جمع‌آوری اطلاعات و ثبت یک اشکال، مراحل زیر را دنبال کنید:

  1. در پنل شبیه ساز، روی More کلیک کنید.
  2. در پنجره Extended Controls ، گزارش اشکال را انتخاب کنید.

    با این کار صفحه ای با جزئیات گزارش اشکال مانند عکس صفحه، اطلاعات پیکربندی AVD و گزارش گزارش اشکال باز می شود. می توانید مراحل تکثیر را در اینجا وارد کنید یا منتظر بمانید و آنها را در گزارش تولید شده در مرحله بعد وارد کنید.

  3. منتظر بمانید تا گزارش اشکال جمع آوری شود، سپس روی ارسال به Google کلیک کنید.

    پنجره ای برای شما باز می شود تا گزارش اشکال را در یک پوشه ذخیره کنید. مرورگر شما همچنین برای ایجاد گزارشی در ردیاب مسئله Google با پر کردن جزئیات شبیه‌ساز باز می‌شود.

  4. در گزارش، جزئیات باقیمانده مانند مراحل بازتولید اشکال را کامل کنید و فایل‌هایی را که هنگام ایجاد گزارش اشکال ذخیره شده‌اند، پیوست کنید.

در غیر این صورت، جزئیات زیر را به صورت دستی وارد کنید:

  • نسخه شبیه ساز

    1. در شبیه ساز، Extended controls را باز کنید.
    2. روی Help کلیک کنید.
    3. برای یافتن نسخه شبیه ساز، روی تب About کلیک کنید.
  • نسخه Android SDK Tools

    1. Tools > SDK Manager را انتخاب کنید.
    2. روی SDK Tools کلیک کنید.
    3. ابزارهای Android SDK را پیدا کنید.
  • مدل CPU میزبان

    • در لینوکس: /proc/cpuinfo را باز کنید.
    • در ویندوز: روی My Computer کلیک راست کرده و Properties را انتخاب کنید.
    • در macOS: نماد Apple را انتخاب کنید و روی About This Mac کلیک کنید
  • نام دستگاه

    1. از AVD Manager ، برای باز کردن منو در ستون Actions برای دستگاه، کلیک کنید.
    2. View Details را انتخاب کنید (یا فایل $avdname.avd/config.ini را باز کنید).
    3. ورودی hw.device.name را پیدا کنید. به عنوان مثال: hw.device.name=Nexus 5 .