একটি বাগ রিপোর্ট

একটি বাগ রিপোর্ট সম্পূর্ণ করতে এই পৃষ্ঠার পদক্ষেপগুলি অনুসরণ করুন৷ বাগগুলি ঠিক করার জন্য সীমিত সংস্থান রয়েছে, তাই সম্পূর্ণ তথ্য রয়েছে এমন বাগগুলিকে অগ্রাধিকার দেওয়া হয়৷ অসম্পূর্ণ বাগ রিপোর্ট বন্ধ আছে. যদি তা হয়, অতিরিক্ত তথ্য সহ আপনার বাগ পুনরায় জমা দিন।

আপনি ইতিমধ্যেই সংশোধন করা হয়েছে এমন একটি বাগ রিপোর্ট করছেন না তা নিশ্চিত করতে, আপনি সরঞ্জামগুলির সর্বশেষ সংস্করণ ব্যবহার করছেন তা নিশ্চিত করুন৷ আপনি যে সমস্যার সম্মুখীন হচ্ছেন তা ইতিমধ্যে রিপোর্ট করা হয়েছে কিনা তা দেখতে আপনি Android স্টুডিও ইস্যু ট্র্যাকারে অনুরূপ সমস্যাগুলির জন্য অনুসন্ধান করতে পারেন।

কিভাবে একটি বাগ রিপোর্ট

একটি বাগ রিপোর্ট করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যান্ড্রয়েড স্টুডিও থেকে একটি বাগ রিপোর্ট খুলতে, সহায়তা > প্রতিক্রিয়া জমা দিন নির্বাচন করুন।

    এটি একটি বাগ শুরু করার সবচেয়ে সহজ উপায়, কারণ এটি আপনার অ্যান্ড্রয়েড স্টুডিও সংস্করণ, কোটলিন বা জাভা সংস্করণ এবং সমস্যাটি সঠিকভাবে পুনরুত্পাদন করার জন্য প্রয়োজনীয় সিস্টেমের তথ্য দিয়ে বাগ রিপোর্টটি পূরণ করে৷

    আপনি এখানে আপনার বাগ ফাইল করতে পারেন এবং সংস্করণ তথ্য নিজেই যোগ করতে পারেন।

  2. একটি ডায়াগনস্টিক রিপোর্ট সংযুক্ত করুন যাতে আমরা আপনার সমস্যা ডিবাগ করতে পারি। একটি ডায়াগনস্টিক রিপোর্ট জিপ ফাইল তৈরি করতে, সহায়তা > লগ এবং ডায়াগনস্টিক ডেটা সংগ্রহ করুন ক্লিক করুন।

  3. সমস্যাটি পুনরুত্পাদন করার সঠিক পদক্ষেপগুলি বর্ণনা করুন। কোড স্নিপেট, একটি গিটহাব প্রকল্প যা বাগ পুনরুত্পাদন করতে ব্যবহার করা যেতে পারে এবং আপনি যা পর্যবেক্ষণ করছেন তার স্ক্রিনশট বা রেকর্ডিং সহ যতটা সম্ভব তথ্য জমা দিন।

  4. সমস্যাটি বিস্তারিতভাবে বর্ণনা করুন। আপনার প্রত্যাশিত ফলাফল এবং পরিবর্তে আপনি কী পর্যবেক্ষণ করেছেন তা ব্যাখ্যা করুন।

  5. বাগ রিপোর্টের জন্য একটি বর্ণনামূলক শিরোনাম বেছে নিন। আরও বর্ণনামূলক শিরোনাম ব্যবহার করা সমস্যা অনুসারে সাজানো সহজ করে তোলে।

কিছু বাগগুলির জন্য, আমাদের অতিরিক্ত তথ্যের প্রয়োজন, যা নিম্নলিখিত বিভাগে বর্ণিত হয়েছে:

অ্যান্ড্রয়েড স্টুডিও বাগগুলির জন্য বিশদ বিবরণ

অ্যান্ড্রয়েড স্টুডিওতে নির্দিষ্ট বাগ রিপোর্ট করতে, এই বিভাগে বর্ণিত অতিরিক্ত তথ্য অন্তর্ভুক্ত করুন।

যদি IDE হ্যাং হয়ে যায়

যদি IDE নিজেই খুব মন্থর বা সম্পূর্ণ হিমায়িত বলে মনে হয়, এই পৃষ্ঠায় বর্ণিত হিসাবে কয়েকটি থ্রেড ডাম্প তৈরি করুন এবং সেগুলিকে বাগ রিপোর্টে সংযুক্ত করুন। থ্রেড ডাম্পগুলি দেখায় যে IDE কী করছে যা এটিকে ধীর করছে।

যদি IDE মন্থর হয় কিন্তু হিমায়িত না হয়, তাহলে আপনার বাগ রিপোর্টের সাথে idea.log ফাইলটি সংযুক্ত করুন। ফাইল সংযুক্ত করতে, সহায়তা > লগ এবং ডায়াগনস্টিক ডেটা সংগ্রহ করুন বা সহায়তা নির্বাচন করুন > লগ ইন ফাইলগুলি দেখান ( সহায়তা > ম্যাকওএসে লগ ইন ফাইন্ডার দেখান )। এই ফাইলটি দেখায় যে IDE লগে ত্রুটি নিক্ষেপ করছে কিনা।

ধীরগতি নির্ণয় করতে CPU প্রোফাইল ব্যবহার করুন

আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে অলসতার সম্মুখীন হন, তবে CPU প্রোফাইলগুলি কখনও কখনও সমস্যাটি নির্ণয় করতে সহায়তা করতে পারে।

অ্যান্ড্রয়েড স্টুডিও পারফরম্যান্স টেস্টিং প্লাগইন ব্যবহার করে একটি CPU প্রোফাইল ক্যাপচার করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. প্লাগইন ইন্সটল করুন।

    • অ্যান্ড্রয়েড স্টুডিওতে, প্লাগইন মার্কেটপ্লেসে "পারফরম্যান্স টেস্টিং" অনুসন্ধান করুন।
    • বিকল্পভাবে, আপনি প্লাগইন ওয়েবসাইট থেকে একটি অ্যান্ড্রয়েড স্টুডিও-সামঞ্জস্যপূর্ণ সংস্করণ ডাউনলোড করতে পারেন।
  2. CPU প্রোফাইল তৈরি করুন।

    1. যখন অ্যান্ড্রয়েড স্টুডিও অলস বলে মনে হয়, তখন স্টার্ট সিপিইউ ইউসেজ প্রোফাইলিং বেছে নিন।
    2. কয়েকটি ক্রিয়া পুনরাবৃত্তি করুন যার জন্য লেটেন্সি সমস্যাযুক্ত (কোড সম্পূর্ণ হওয়া, টাইপ করা এবং ধরা পড়ার জন্য হাইলাইট করার জন্য অপেক্ষা করা ইত্যাদি)।
    3. CPU ইউসেজ প্রোফাইলিং বন্ধ করুন ক্লিক করুন।
  3. প্রোফাইল ফাইল শেয়ার করুন.

    একটি বেলুন CPU স্ন্যাপশট ফাইলের নাম প্রদান করে, যা snapshot-NNN ফর্ম্যাট অনুসরণ করে। আপনার বাগ রিপোর্টে সেই স্ন্যাপশট ফাইলটি শেয়ার করুন।

যদি IDE মেমরি ফুরিয়ে যায়

অ্যান্ড্রয়েড স্টুডিওতে মেমরি সমস্যাগুলি পুনরুত্পাদন এবং রিপোর্ট করা কখনও কখনও কঠিন। এই সমস্যা সমাধানে সাহায্য করার জন্য, অ্যান্ড্রয়েড স্টুডিওতে একটি মেমরি ব্যবহারের রিপোর্ট রয়েছে যা আপনি মেমরি সমস্যার উৎস শনাক্ত করতে সাহায্য করতে অ্যান্ড্রয়েড স্টুডিও টিমের কাছে পাঠাতে পারেন।

একটি মেমরি ব্যবহার রিপোর্ট চালান

একটি মেমরি ব্যবহারের রিপোর্ট চালানোর জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. মেনু বার থেকে সাহায্য > মেমরি ব্যবহার বিশ্লেষণে ক্লিক করুন।

    অ্যান্ড্রয়েড স্টুডিও গাদা ডাম্প করে এবং আপনাকে IDE পুনরায় চালু করতে অনুরোধ করে। আপনি যদি IDE পুনরায় চালু করেন, হিপ ডাম্প বিশ্লেষণ অবিলম্বে শুরু হয়। অন্যথায়, পরের বার আপনি যখন Android স্টুডিও চালাবেন তখন হিপ ডাম্প বিশ্লেষণ শুরু হবে। উভয় ক্ষেত্রেই, মেমরি ব্যবহারের প্রতিবেদন পর্যালোচনার জন্য প্রস্তুত হলে IDE আপনাকে অবহিত করবে, যেমন চিত্র 1-এ দেখানো হয়েছে।

    একটি মেমরি ব্যবহারের রিপোর্ট পর্যালোচনা করার জন্য প্রস্তুত তা নির্দেশ করে বিজ্ঞপ্তি৷
    চিত্র 1. মেমরি ব্যবহারের রিপোর্ট বিজ্ঞপ্তি।
  2. পর্যালোচনা প্রতিবেদন ক্লিক করুন.

    আপনি রিপোর্ট পাঠানোর আগে, আপনি অন্তর্ভুক্ত করা তথ্য পর্যালোচনা করতে পারেন:

    একটি মেমরি ব্যবহার রিপোর্ট.
    চিত্র 2. মেমরি ব্যবহারের প্রতিবেদন বিশ্লেষণ।
  3. আপনি আপনার পর্যালোচনা শেষ করার পরে, রিপোর্টের বিষয়বস্তু একটি ফাইলে অনুলিপি করুন এবং যখন আপনি আপনার বাগ ফাইল করবেন তখন সেই ফাইলটি সংযুক্ত করুন৷

    এইভাবে প্রতিবেদনের তথ্য জমা দিলে Android স্টুডিও টিম আপনার মেমরির সমস্যাগুলি তদন্ত করার সময় সমস্যা ট্র্যাকার ব্যবহার করে আপনার সাথে যোগাযোগ করতে দেয়।

যদি IDE ক্র্যাশ হয় বা ব্যতিক্রম ফেলে দেয়

অন্যান্য ধরনের ক্র্যাশের জন্য, Help > Collect Logs and Diagnostic Data or Help > Show Log in Files ( Help > macOS-এ লগ ইন ফাইন্ডার দেখান ) নির্বাচন করে প্রাপ্ত idea.log ফাইল সংযুক্ত করুন।

একটি থ্রেড ডাম্প তৈরি করুন

একটি থ্রেড ডাম্প হল JVM এ চলমান সমস্ত থ্রেডের একটি প্রিন্টআউট। প্রতিটি থ্রেডের জন্য, এটি সমস্ত স্ট্যাকফ্রেমের একটি প্রিন্টআউট অন্তর্ভুক্ত করে। এটি IDE কি করতে ব্যস্ত তা দেখা সহজ করে তোলে, বিশেষ করে যদি আপনি কয়েক সেকেন্ডের ব্যবধানে কয়েকটি থ্রেড ডাম্প তৈরি করেন।

আপনি যখন এমন বাগ রিপোর্ট করেন যেখানে IDE একটি পেগড CPU নিয়ে অত্যন্ত ব্যস্ত থাকে বা যেখানে IDE হিমায়িত হয়েছে বলে মনে হয়, তখন একটি থ্রেড ডাম্প নির্দেশ করতে পারে কোন কোডটি অনেক কাজ করছে বা কোন থ্রেডগুলি সংস্থানগুলির জন্য প্রতিযোগিতা করছে এবং একটি অচলাবস্থা সৃষ্টি করছে৷

JDK jstack নামের একটি টুল সহ জাহাজ যা একটি থ্রেড ডাম্প তৈরি করতে ব্যবহার করা যেতে পারে। প্রথমে অ্যান্ড্রয়েড স্টুডিও প্রক্রিয়ার প্রসেস আইডি (পিআইডি) খুঁজুন। এটি করতে, jps কমান্ডটি ব্যবহার করুন:

লিনাক্স বা ম্যাকোসে:

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, এই উদাহরণে) হল প্রসেস আইডি।

এরপরে, একটি থ্রেড ডাম্প তৈরি করুন এবং একটি dump.txt ফাইলে সংরক্ষণ করুন:

jstack -l pid >> dump.txt

যদি এটি কাজ না করে, তবে কিছু অতিরিক্ত প্ল্যাটফর্ম-নির্দিষ্ট উপায় রয়েছে যা আপনি একটি থ্রেড ডাম্প তৈরি করতে পারেন। বিস্তারিত নির্দেশাবলীর জন্য, IntelliJ Support দেখুন।

বিল্ড টুলস এবং গ্রেডল বাগগুলির বিশদ বিবরণ

বিল্ড টুল বা গ্রেডলের জন্য একটি বাগ রিপোর্ট করতে, একটি বাস্তব বা নমুনা প্রকল্প সংযুক্ত করুন যা সমস্ত প্রয়োজনীয় তথ্য ক্যাপচার করা হয়েছে তা নিশ্চিত করতে সমস্যাটি প্রদর্শন করে। শেয়ার করার আগে কোনো সংবেদনশীল তথ্য মুছে ফেলুন।

আপনি যদি একটি প্রকল্প ভাগ করতে না পারেন, তাহলে আপনি যে সরঞ্জামগুলি ব্যবহার করছেন তার সংস্করণগুলি নির্দেশ করুন৷ (একটি বাগ রিপোর্ট করার আগে সর্বশেষ স্থিতিশীল বা পূর্বরূপ সংস্করণ ব্যবহার করার চেষ্টা করুন)। আপনার টুল সংস্করণ খুঁজে পেতে, নিম্নলিখিত করুন:

  • অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ:

    1. ফাইল > প্রজেক্ট স্ট্রাকচার নির্বাচন করুন।
    2. প্রকল্পে ক্লিক করুন।
    3. অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ খুঁজুন।
  • গ্রেডল সংস্করণ:

    1. ফাইল > প্রজেক্ট স্ট্রাকচার নির্বাচন করুন।
    2. প্রকল্পে ক্লিক করুন।
    3. গ্রেডল সংস্করণ সনাক্ত করুন।
  • অ্যান্ড্রয়েড স্টুডিও সংস্করণ:

    1. সাহায্য > সম্পর্কে নির্বাচন করুন।
    2. অ্যান্ড্রয়েড স্টুডিও সংস্করণ খুঁজুন।

উপরন্তু, প্রযোজ্য ক্ষেত্রে নিম্নলিখিত তথ্য অন্তর্ভুক্ত করুন:

  • যদি একটি আচরণ পূর্ববর্তী সংস্করণ থেকে বর্তমান সংস্করণে অপ্রত্যাশিতভাবে পরিবর্তিত হয়, উভয় সংস্করণ নির্দেশ করুন।
  • ত্রুটির সাথে বিল্ড ব্যর্থ হলে, --stacktrace বিকল্পের সাহায্যে কমান্ড লাইন থেকে বিল্ডটি চালান (যেমন ./gradlew <task> --stacktrace ) এবং আপনার বাগ রিপোর্টে একটি স্ট্যাক ট্রেস প্রদান করুন।
  • যদি বিল্ডটি প্রত্যাশার চেয়ে বেশি সময় নেয় তবে নিম্নলিখিতগুলির মধ্যে একটি চেষ্টা করুন:
    • ./gradlew <task> --scan এবং আপনার বাগ রিপোর্টে জেনারেট করা Gradle বিল্ড স্ক্যান শেয়ার করুন।
    • ./gradlew <task> -Pandroid.enableProfileJson=true চালান এবং <root-project>/build/android-profile ডিরেক্টরির অধীনে তৈরি করা Chrome-ট্রেস ফাইল শেয়ার করুন।

অ্যান্ড্রয়েড এমুলেটর বাগগুলির বিশদ বিবরণ৷

তথ্য সংগ্রহ করতে এবং একটি বাগ ফাইল করতে এমুলেটরের বর্ধিত নিয়ন্ত্রণগুলি ব্যবহার করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. এমুলেটর প্যানেলে, আরও ক্লিক করুন.
  2. এক্সটেন্ডেড কন্ট্রোল উইন্ডোতে, বাগ রিপোর্ট নির্বাচন করুন।

    এটি স্ক্রিনশট, AVD কনফিগারেশন তথ্য এবং একটি বাগ রিপোর্ট লগের মতো বাগ রিপোর্টের বিশদ বিবরণ সহ একটি স্ক্রিন খোলে। আপনি এখানে পুনরুত্পাদন করার পদক্ষেপগুলি লিখতে পারেন বা অপেক্ষা করতে পারেন এবং পরবর্তী ধাপে উত্পন্ন প্রতিবেদনে প্রবেশ করতে পারেন৷

  3. বাগ রিপোর্ট সংগ্রহ করা শেষ হওয়ার জন্য অপেক্ষা করুন, তারপর Google-এ পাঠান ক্লিক করুন।

    একটি ফোল্ডারে বাগ রিপোর্ট সংরক্ষণ করার জন্য আপনার জন্য একটি উইন্ডো খোলে। আপনার ব্রাউজারটি প্রয়োজনীয় এমুলেটর বিবরণ পূরণ করে Google ইস্যু ট্র্যাকারে একটি প্রতিবেদন তৈরি করতেও খোলে।

  4. প্রতিবেদনে, অবশিষ্ট বিবরণ সম্পূর্ণ করুন, যেমন বাগ পুনরুত্পাদনের পদক্ষেপগুলি, এবং আপনি যখন বাগ রিপোর্ট তৈরি করেন তখন সংরক্ষিত ফাইলগুলি সংযুক্ত করুন৷

অন্যথায়, ম্যানুয়ালি নিম্নলিখিত বিবরণ লিখুন:

  • এমুলেটর সংস্করণ

    1. এমুলেটরে, এক্সটেন্ডেড কন্ট্রোল খুলুন।
    2. সাহায্য ক্লিক করুন.
    3. এমুলেটর সংস্করণ খুঁজতে সম্পর্কে ট্যাবে ক্লিক করুন।
  • অ্যান্ড্রয়েড এসডিকে টুলস সংস্করণ

    1. টুলস > SDK ম্যানেজার নির্বাচন করুন।
    2. SDK টুলে ক্লিক করুন।
    3. অ্যান্ড্রয়েড এসডিকে টুলস খুঁজুন।
  • হোস্ট সিপিইউ মডেল

    • লিনাক্সে: /proc/cpuinfo খুলুন।
    • উইন্ডোজে: আমার কম্পিউটারে রাইট-ক্লিক করুন এবং বৈশিষ্ট্য নির্বাচন করুন।
    • ম্যাকস-এ: অ্যাপল আইকন নির্বাচন করুন এবং এই ম্যাকের সম্পর্কে ক্লিক করুন
  • ডিভাইসের নাম

    1. AVD ম্যানেজার থেকে, ডিভাইসের জন্য অ্যাকশন কলামে মেনু খুলতে ক্লিক করুন।
    2. দেখুন বিস্তারিত নির্বাচন করুন (অথবা $avdname.avd/config.ini ফাইলটি খুলুন)।
    3. hw.device.name এর জন্য এন্ট্রি খুঁজুন। যেমন: hw.device.name=Nexus 5