এই পাতায় অ্যান্ড্রয়েড স্টুডিও পান্ডা ২ এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৯.১.০-এর জ্ঞাত সমস্যাগুলো নথিভুক্ত করা হয়। আপনি যদি এমন কোনো সমস্যার সম্মুখীন হন যা এখানে ইতিমধ্যে অন্তর্ভুক্ত নয়, তবে অনুগ্রহ করে একটি বাগ রিপোর্ট করুন ।
প্রিভিউতে আপগ্রেড করুন: অ্যান্ড্রয়েড স্টুডিও এবং অ্যান্ড্রয়েড গ্র্যাডল প্লাগইনের প্রতিটি রিলিজের লক্ষ্য হলো স্থিতিশীলতা ও পারফরম্যান্স উন্নত করা এবং নতুন ফিচার যোগ করা। আসন্ন রিলিজগুলোর সুবিধা এখনই উপভোগ করতে, অ্যান্ড্রয়েড স্টুডিও প্রিভিউ ডাউনলোড ও ইনস্টল করুন।
অ্যান্ড্রয়েড স্টুডিওর পরিচিত সমস্যাসমূহ
এই অংশে অ্যান্ড্রয়েড স্টুডিওতে বিদ্যমান পরিচিত সমস্যাগুলো বর্ণনা করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিও পান্ডা ৩, ইন্টেলিজ ডেভলপমেন্ট প্লাগইন ১.২.০-এর সাথে সামঞ্জস্যপূর্ণ নয়।
Android Studio Panda 3 Canary 1 থেকে শুরু করে Develocity IDE প্লাগইন v1.2.0 ব্যবহার করার সম���়, রান অ্যাকশনটি নিম্নলিখিত ত্রুটির সাথে ব্যর্থ হয় ( ইস্যু #492439205 ):
Found interface com.android.tools.idea.gradle.project.build.invoker.GradleBuildInvoker$Request, but class was expected
Develocity-র ��েভ���লপাররা নতুন সংস্করণটির জন্য একটি সমাধান নিয়ে কাজ করছেন ।
সাময়িক সমাধান : প্লাগইনের নতুন সংস্করণে এই অসামঞ্জস্যতাটি সংশোধন না হওয়া পর্যন্ত Develocity IDE প্লাগইন v1.2.0 নিষ্ক্রিয় করে রাখলে সমস্যাটির সমাধান হয়।
কোটলিন ২.০: লেআউট ইন্সপেক্টরে ল্যাম্বডা রিজলভ করা যাচ্ছে না
Kotlin 2.0 ব্যবহার করার সময় ল্যাম্বডাগুলো রিজলভ করা যায় না এবং লেআউট ইন্সপেক্টর স্বাভাবিকভাবে ল্যাম্বডার সোর্স কোডে নেভিগেট করতে পারে না।
সাময়িক সমাধান : এই সমস্যাটি সমাধান না হওয়া পর্যন্ত, একটি সাময়িক সমাধান হিসেবে নিচের কম্পাইলার অপশনটি যোগ করুন:
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xlambdas=class")
}
}
"Before launch" ছাড়া কনফিগারেশন চালালে Gradle-aware Make ডিপ্লয়মেন্টে ত্রুটি দেখা দেয়।
অ্যান্ড্রয়েড স্টুডিও লেডিবাগ ফিচার ড্রপ ক্যানারি ৯-এ একটি সমস্যা ছিল, যার কারণে ঐ ভার্সন দিয়ে খোলা প্রজেক্টগুলো থেকে রান কনফিগারেশনের তথ্য মুছে যেত। আপনি যদি কোনো এক সময়ে ঐ ভার্সন দিয়ে আপনার প্রজেক্ট খুলে থাকেন এবং অ্যাপটি রান করার ফলে "loading build artifacts" এরর আসে, তবে যাচাই করে দেখুন যে সক্রিয় রান কনফিগারেশনের "Before launch" ��েকশনে "Gradle-aware Make" স্টেপটি আছে কি না। এটি যাচাই করতে Run/Debug Configurations > Edit Configurations-এ ক্লিক করুন, সক্রিয় রান কনফিগারেশনটিতে ক্লিক করুন এবং নিশ্চিত করুন যে "Before launch" সেকশনে একটি "Gradle-aware Make" স্টেপ রয়েছে। দুর্ভাগ্যবশত, অ্যান্ড্রয়েড স্টুডিও এই সমস্যাটি স্বয়ংক্রিয়ভাবে সমাধান করতে পারে না, কারণ কিছু রান কনফিগারেশন হয়তো ইচ্ছাকৃতভাবে "Gradle-aware Make" স্টেপটি ছাড়াই সেট আপ করা হয়েছিল।
‘পরিবর্তন প্রয়োগ করুন এবং অ্যাক্টিভিটি পুনরায় চালু করুন’ বিকল্পটি API লেভেল 35 ডিভাইস বা এমুলেটরগুলিতে অ্যাক্টিভিটি পুনরায় চালু করে না।
আপনি যখন 'পরিবর্তন প্রয়োগ করুন এবং কার্যকলাপ পুনরায় চালু করুন' বিকল্পটি ব্যবহার করে কোনো API 35 ডিভাইসে কোডের পরিবর্তন প্রয়োগ করেন, তখন অ্যাপটি পুনরায় চালু হবে না এবং আপনি পরিবর্তনগুলির প্রভাব দেখতে পাবেন না। আপনি যদি অ্যাপ্লিকেশনটি পুনরায় চালান, তবে কোডের পরিবর্তনগুলির প্রভাব দেখতে পাবেন। আমাদের দল সক্রিয়ভাবে বিষয়টি তদন্ত করছে।
ফায়ারবেস অ্যাসিস্ট্যান্ট উইন্ডোতে একটি ত্রুটির বার্তা প্রদর্শিত হচ্ছে।
যদি ফায়ারবেস অ্যাসিস্ট্যান্ট উইন্ডোতে (প্রধান মেনু থেকে টুলস > ফায়ারবেস) কোনো ত্রুটির বার্তা প্রদর্শিত হয়, তাহলে ত্রুটিটি সমাধান করার জন্য ক্যাশেগুলো বাতিল করুন এবং অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করুন।
লেআউট ইন্সপেক্টর ব্যবহার করে কোনো ভিউকে আলাদা করা যাচ্ছে না।
এমবেডেড লেআউট ইন্সপেক্টর ব্যবহার করে কোনো ভিউকে আলাদা করার সুবিধাটি সাময়িকভাবে অনুপলব্ধ। আমরা পরবর্তী কোনো রিলিজে এই সমস্যাটি সমাধানের জন্য কাজ করছি।
লেআউট ইন্সপেক্টর ব্যবহার করে কম্পোজ নোডগুলোর সবগুলো পরিদর্শন করা যায় না।
লেআউট ইন্সপেক্টর ব্যবহার করার সময় যদি আপনি লক্ষ্য করেন যে সব কম্পোজ নোড পরিদর্শনযোগ্য নয়, তবে এটি সম্ভবত একটি বাগের কারণে হয়েছে যা কম্পোজ সংস্করণ 1.5.0-alpha04-এ সমাধান করা হয়েছে। আপনি যদি এই সমস্যার সম্মুখীন হন, তবে নিশ্চিত করুন যে আপনি কম্পোজ সংস্করণ 1.5.0-alpha04 বা তার উচ্চতর সংস্করণে আপগ্রেড করেছেন।
কম্পোজ প্রিভিউ রেন্ডার করার সময় ত্রুটি
Android Studio Chipmunk থেকে শুরু করে, যদি আপনি ইস্যু প্যানেলে java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner অথবা java.lang.ClassNotFoundException: androidx.savedstate.R$id দেখতে পান, তাহলে আপনার মডিউলে androidx.lifecycle:lifecycle-viewmodel-savedstate এর একটি debugImplementation ডিপেন্ডেন্স�� ��ন����র্��ুক্ত ��রা ��িশ্চিত করুন।
আপনি যদি ইস্যু প্যানেলে java.lang.NoSuchFieldError: view_tree_lifecycle_owner দেখতে পান, তাহলে আপনার মডিউলে androidx.lifecycle:lifecycle-runtime এর একটি debugImplementation ডিপেন্ডেন্সি অন্তর্ভুক্ত করা নিশ্চিত করুন।
যদি আপনি ইস্যু প্যানেলে java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer অথবা java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener এররটি দেখতে পান, তাহলে আপনার মডিউলে androidx.customview:customview-poolingcontainer এর একটি debugImplementation ডিপেন্ডেন্সি অন্তর্ভুক্ত করা নিশ্চিত করুন।
কী এবং কীস্টোরের জন্য ভিন্ন পাসওয়ার্ড ব্যবহার করলে ত্রুটি দেখা দেয়।
সংস্করণ ৪.২ থেকে শুরু করে, অ্যান্ড্রয়েড স্টুডিও এখন জেডিকে ১১-এ চলে। এই আপডেটের ফলে কী (key) সাইন করার সাথে সম্পর্কিত একটি অন্তর্নিহিত আচরণগত পরিবর্তন এসেছে।
যখন আপনি Build > Generate Signed Bundle / APK- তে গিয়ে কোনো অ্যাপ বান্ডেল বা APK-এর জন্য অ্যাপ সাইনিং কনফিগার করার চেষ্টা করেন, তখন কী (key) এবং কীস্টোরের (keystore) জন্য ভিন্ন ভিন্ন পাসওয়ার্ড দিলে নিম্নলিখিত ত্রুটিটি দেখা দিতে পারে:
Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores
এই সমস্যাটি সমাধান করতে, কী এবং কীস্টোর উভয়ের জন্য একই পাসওয়ার্ড দিন।
সংস্করণ ৪.২ ইনস্টল করার পর অ্যান্ড্রয়েড স্টুডিও চালু হচ্ছে না।
JDK 11 দ্বারা ব্যবহৃত গার্বেজ কালেক্টরের সাথে কাজ করার জন্য Studio পূর্ববর্তী .vmoptions ফাইলগুলো ইম্পোর্ট এবং স্যানিটাইজ করার চেষ্টা করে। যদি সেই প্রক্রিয়াটি ব্যর্থ হয়, তাহলে কিছু নির্দিষ্ট ব্যবহারকারীর জন্য IDE চালু নাও হতে পারে, যারা .vmoptions ফাইলে কাস্টম VM অপশন সেট করেছেন।
এই সমস্যাটি সমাধান করার জন্য, আমরা .vmoptions ফাইলে থাকা কাস্টম অপশনগুলোকে “#” চিহ্ন ব্যবহার করে কমেন্ট আউট করার পরামর্শ দিচ্ছি। .vmoptions ফাইলটি নিম্নলিখিত স্থানগুলিতে পাওয়া যাবে:
উইন্ডোজ
C:\Users\YourUserName\AppData\ [Local|Roaming] \Google\AndroidStudio4.2\studio64.exe.vmoptions
ম্যাকওএস
~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions
লিনাক্স
~/.config/Google/AndroidStudio4.2/studio64.vmoptions
এই সমাধানটি চেষ্টা করার পরেও যদি Studio চালু না হয়, তাহলে নিচে ‘আপগ্রেডের পর Studio চালু হচ্ছে না’ অংশটি দেখুন।
ডেটাবেস ইন্সপেক্টর ব্যবহারকারী অ্যাপগুলো অ্যান্ড্রয়েড ১১ এমুলেটরে ক্র্যাশ করে।
ডেটাবেস ইন্সপেক্টর ব্যবহারকারী অ্যাপগুলো অ্যান্ড্রয়েড ১১ এমুলেটরে চলার সময় ক্র্যাশ করতে পারে এবং লগক্যাটে নিম্নলিখিতের মতো একটি ত্রুটি দেখা যেতে পারে:
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
এই সমস্যাটি সমাধান করতে, Tools > SDK Manager- এ গিয়ে আপনার Android 11 এমুলেটরটিকে ভার্সন 9 বা তার উচ্চতর সংস্করণে আপগ্রেড করুন। SDK Platforms ট্যাবে, Show Package Details লেখা বক্সটিতে টিক দিন এবং Android 11 এমুলেটরের রিভিশন 9 বা তার উচ্চতর সংস্করণটি নির্বাচন করুন।

আপগ্রেডের পর স্টুডিও চালু হচ্ছে না।
আপগ্রেডের পর যদি স্টুডিও চালু না হয়, তবে সমস্যাটি অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী সংস্করণ থেকে ইম্পোর্ট করা একটি অবৈধ কনফিগারেশন অথবা একটি বেমানান প্লাগইনের কারণে হতে পারে। একটি সাময়িক সমাধান হিসেবে, অ্যান্ড্রয়েড স্টুডিওর সংস্করণ এবং অপারেটিং সিস্টেমের উপর নির্ভর করে নিচের ডিরেক্টরিটি মুছে ফেলার (অথবা ব্যাকআপের জন্য নাম পরিবর্তন করার) চেষ্টা করুন এবং অ্যান্ড্রয়েড স্টুডিও আবার চালু করুন। এটি অ্যান্ড্রয়েড স্টুডিওকে তার ডিফল্ট অবস্থায় রিসেট করবে এবং সমস্ত থার্ড-পার্টি প্লাগইন মুছে যাবে।
অ্যান্ড্রয়েড স্টুডিও ৪.১ এবং পরবর্তী সংস্করণগুলোর জন্য:
উইন্ডোজ:
%APPDATA%\Google\AndroidStudio <version>
উদাহরণ:C:\Users\ your_user_name \AppData\Roaming\Google\AndroidStudio4.1macOS:
~/Library/Application Support/Google/AndroidStudio <version>
উদাহরণ:~/Library/Application Support/Google/AndroidStudio4.1লিনাক্স:
~/.config/Google/AndroidStudio <version>এবং~/.local/share/Google/AndroidStudio <version>
উদাহরণ:~/.config/Google/AndroidStudio4.1এবং~/.local/share/Google/AndroidStudio4.1
অ্যান্ড্রয়েড স্টুডিও ৪.০ এবং পূর্ববর্তী সংস্করণগুলোর জন্য:
উইন্ডোজ:
%HOMEPATH%\.AndroidStudio <version> \config
উদাহরণ:C:\Users\ your_user_name \.AndroidStudio3.6\configম্যাকওএস:
~/Library/Preferences/AndroidStudio <version>
উদাহরণ:~/Library/Preferences/AndroidStudio3.6লিনাক্স:
~/.AndroidStudio <version> /config
উদাহরণ:~/.AndroidStudio3.6/config
উল্লেখ্য যে, অ্যান্ড্রয়েড স্টুডিও-র ক্যানারি এবং বিটা রিলিজের জন্য কনফিগারেশন ডিরেক্টরি হলো PreviewX.Y , <version> এর জন্য XY এর পরিবর্তে। উদাহরণস্বরূপ, অ্যান্ড্রয়েড স্টুডিও ৪.১ ক্যানারি বিল্ডগুলো AndroidStudioPreview4.1 ব্যবহার করে, রিলিজ ক্যান্ডিডেট এবং স্টেবল রিলিজের জন্য ব্যবহৃত AndroidStudio4.1 ডিরেক্টরির পরিবর্তে।
কোটলিন মাল্টিপ্ল্যাটফর্ম প্রজেক্টে কম্পাইলেশন সমস্যা
প্রতীক অনুপস্থিত থাকার কারণে কোটলিন এমপিপি কোডে কম্পাইলেশন ত্রুটি দেখা দিতে পারে। আপনার কোটলিন প্লাগইনটি সংস্করণ ১.৪-এ আপগ্রেড করলে এই সমস্যার সমাধান হয়ে যাবে।
লিনাক্সে কী ম্যাপিং দ্বন্দ্ব
লিনাক্সে, কিছু নির্দিষ্ট কীবোর্ড শর্টকাট ডিফল্ট লিনাক্স কীবোর্ড শর্টকাট এবং কেডিই (KDE) ও জিনোম (GNOME)-এর মতো জনপ্রিয় উইন্ডো ম্যানেজারগুলোর শর্টকাটের সাথে সাংঘর্ষিক হয়। এই সাংঘর্ষিক কীবোর্ড শর্টকাটগুলো অ্যান্ড্রয়েড স্টুডিওতে প্রত্যাশিতভাবে কাজ নাও করতে পারে।
এই সমস্যাটি সম্পর্কে আরও তথ্য (সম্ভাব্য সমাধান সহ) ইন্টেলিজের বাগ ট্র্যাকারে পাওয়া যাবে।
ChromeOS-এ ছোট UI টেক্সট
ChromeOS-এ লেখা আগের সংস্করণগুলোর তুলনায় অনেক ছোট দেখাতে পারে। এই সমস্যাটি সমাধান করতে, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:
- ফাইল > সেটিংস-এ ক্লিক করে সেটিংস উইন্ডোটি খুলুন।
- Appearance & Behavior > Appearance- এ যান।
- কাস্টম ফন্ট ব্যবহার করুন নির্বাচন করুন।
- ফন্টের আকার বাড়ান।
- সেটিংস উইন্ডোতে, এডিটর > ফন্ট- এ যান।
- ফন্টের আকার বাড়ান।
- OK ক্লিক করুন।
কোড সম্পাদনা
এই অংশে কোড এডিটর সম্পর্কিত জ্ঞাত সমস্��াগুলো বর্ণনা করা হয়েছে।
লিনাক্সে কিবোর্ড ইনপুট আটকে যাওয়া - "iBus" সংক্রান্ত সমস্যা
লিনাক্সের iBus ডেমন এবং অ্যান্ড্রয়েড স্টুডিওর মধ্যে কিছু পরিচিত ইন্টারঅ্যাকশন রয়েছে। কিছু ক্ষেত্রে, IDE কিবোর্ড ইনপুটে সাড়া দেওয়া বন্ধ করে দেয় অথবা এলোমেলো অক্ষর ইনপুট করতে শুরু করে। এই বাগটি iBus এবং XLib + AWT-এর মধ্যে সিনক্রোনাইজেশনের অভাবের কারণে ঘটে এবং এটি ইতিমধ্যেই JetBrains ও iBus- কে জানানো হয়েছে। এই সমস্যার জন্য বর্তমানে তিনটি সমাধান রয়েছে:
- সমাধান ১: iBus-কে সিনক্রোনাস মোডে জোর করে চালু করুন। Android Studio শুরু করার আগে, কমান্ড লাইনে নিম্নলিখিতটি চালান:
$ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
- বিকল্প সমাধান ২: অ্যান্ড্রয়েড স্টুডিওতে iBus ইনপুট নিষ্ক্রিয় করুন। শুধুমাত্র অ্যান্ড্রয়েড স্টুডিওর জন্য iBus ইনপুট নিষ্ক্রিয় করতে, কমান্ড লাইনে নিম্নলিখিতটি চালান:
এই সমাধানটি শুধুমাত্র অ্যান্ড্রয়েড স্টুডিও-র ইনপুট মেথডগুলো নিষ্ক্রিয় করে, আপনার চালানো অন্য কোনো অ্যাপ্লিকেশনের জন্য নয়। মনে রাখবেন যে, অ্যান্ড্রয়েড স্টুডিও চালু থাকা অবস্থায় যদি আপনি ডেমনটি রিস্টার্ট করেন (উদাহরণস্বরূপ,$ XMODIFIERS= ./bin/studio
ibus-daemon -rdচালিয়ে), তাহলে অন্য সব অ্যাপ্লিকেশনের ইনপুট মেথডগুলোও কার্যকরভাবে নিষ্ক্রিয় হয়ে যাবে এবং সেগমেন্টেশন ফল্টের কারণে অ্যান্ড্রয়েড স্টুডিও-র JVM ক্র্যাশও করতে পারে। - সমাধান ৩: শর্টকাট বাইন্ডিংগুলো পুনরায় পরীক্ষা করে দেখুন যে নেক্সট ইনপুট শর্টকাটটি কন্ট্রোল+স্পেস-এ সেট করা নেই, কারণ এটি অ্যান্ড্রয়েড স্টুডিওতে কোড কমপ্লিশন শর্টকাট হিসেবেও ব্যবহৃত হয়। উবুন্টু ১৪.০৪ (ট্রাস্টি) সুপার+স্পেস-কে ডিফল্ট শর্টকাট হিসেবে সেট করে, কিন্তু পূর্ববর্তী সংস্করণগুলোর সেটিংস এখনও থাকতে পারে। আপনার শর্টকাট বাইন্ডিংগুলো পরীক্ষা করতে, কমান্ড লাইনে
ibus-setupরান করে IBus Preferences উইন্ডোটি খুলুন। Keyboard Shortcuts-এর অধীনে, নেক্সট ইনপুট মেথডটি পরীক্ষা করুন। যদি এটি কন্ট্রোল+স্পেস-এ সেট করা থাকে, তবে এটিকে সুপার+স্পেস বা আপনার পছন্দের অন্য কোনো শর্টকাটে পরিবর্তন করুন।
প্রকল্পের কনফিগারেশন
এই অংশে প্রজেক্ট কনফিগারেশন এবং গ্রেডল সিঙ্ক সম্পর্কিত জ্ঞাত সমস্যাগুলো বর্ণনা করা হয়েছে।
গ্রেডল সিঙ্ক ব্যর্থ: ব্রোকেন পাইপ
সমস্যাটি হলো, গ্রেডল ডেমনটি IPv6-এর পরিবর্তে IPv4 ব্যবহার করার চেষ্টা করছে।
- সমাধান ১: লিনাক্সে, আপনার
~/.profileঅথবা~/.bash_profileফাইলে নিম্নলিখিতটি যোগ করুন:export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true" - সমাধান ২: Android Studio-এর vmoptions ফাইলে ,
-Djava.net.preferIPv4Addresses=trueলাইনটি পরিবর্তন করে-Djava.net.preferIPv6Addresses=trueকরুন। আরও তথ্যের জন্য, Networking IPv6 User Guide দেখুন।
Gradle sync বা SDK Manager থেকে "peer not authenticated" ত্রুটি
এই ত্রুটিগুলির মূল কারণ হলো $JAVA_HOME/jre/lib/certificates/cacerts এ সার্টিফিকেটের অনুপস্থিতি। এই ত্রুটিগুলি সমাধান করতে, নিম্নলিখিতভাবে অগ্রসর হন:
- আপনি যদি কোনো প্রক্সির পেছনে থাকেন, তবে সরাসরি সংযোগ করার চেষ্টা করুন। যদি সরাসরি সংযোগটি কাজ করে, তবে প্রক্সির মাধ্যমে সংযোগ করার জন্য আপনাকে
keytoolব্যবহার করে cacerts ফাইলে প্রক্সি সার্ভারের সার্টিফিকেটটি যোগ করতে হতে পারে। - একটি সমর্থিত, অপরিবর্তিত JDK পুনরায় ইনস্টল করুন। উবুন্টু ব্যবহারকারীদের একটি পরিচিত সমস্যা রয়েছে, যার ফলে
/etc/ssl/certs/java/cacertsফাইলটি খালি হয়ে যায়��� এই ��মস্যাটি সমাধান করতে, কমান্ড লাইনে নিম্নলিখিতটি চালান:sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure
মোতায়েন করা হচ্ছে
এই বিভাগে কোনো সংযুক্ত ডিভাইসে আপনার অ্যাপ স্থাপন করার সাথে সম্পর্কিত জ্ঞাত সমস্যাগুলো বর্ণনা করা হয়েছে।
[শুধুমাত্র Mac OS এর জন্য] /System/Volumes/Data এর অধীনে সংরক্ষিত প্রজেক্টগুলিতে Gradle ফাইল পর্যবেক্ষণের একটি সমস্যার কারণে ইনক্রিমেন্টাল আপডেটগুলি প্রয়োগ করা হচ্ছে না।
Gradle ইস্যু 18149 অ্যান্ড্রয়েড Gradle প্লাগইন সংস্করণ 7.0 এবং তার উপরের সংস্করণগুলিকে প্রভাবিত করে, কারণ সেগুলির জন্য Gradle সংস্করণ 7.0 এবং তার উপরের সংস্করণ প্রয়োজন । Gradle 7.0 থেকে, ফাইল ওয়াচিং ডিফল্টরূপে সক্রিয় থাকে। আপনি যদি Mac OS-এ কাজ করেন এবং আপনার প্রজেক্টটি /System/Volumes/Data এর অধীনে সেভ করা থাকে, তাহলে Gradle ফাইল ওয়াচিং ফাইলের পরিবর্তনগুলি সঠিকভাবে ট্র্যাক করতে পারবে না। এর ফলে বিল্ড সিস্টেম ফাইলের কোনো পরিবর্তন দেখতে পাবে না এবং তাই এটি APK(গুলি) আপডেট করবে না। ইনক্রিমেন্টাল ডিপ্লয়মেন্ট কোড তখন কিছুই করবে না, কারণ স্থানীয় APK-এর অবস্থা ডিভাইসের অবস্থার মতোই থাকে।
এই সমস্যাটি সমাধান করার জন্য, আপনার প্রোজেক্টের ডিরেক্টরিটি আপনার ইউজার ডিরেক্টরিতে, অর্থাৎ /Users/username অ���ীনে সরিয়ে নিন। এর ফলে, গ্রেডল ফাইল ওয়াচিং-এর মাধ্যমে বিল্ড সিস্টেম ফাইল পরিবর্তনের বিষয়ে সঠিকভাবে অবহিত হবে এবং ক্রমবর্ধমান পরিবর্তনগুলো সফলভাবে প্রয়োগ হবে।
ম্যাকওএস হাই সিয়েরা-তে অ্যান্ড্রয়েড এমুলেটর HAXM
macOS High Sierra (10.13)-এর অ্যান্ড্রয়েড এমুলেটরটি macOS-এর সাথে সর্বোত্তম সামঞ্জস্য এবং স্থিতিশীলতার জন্য HAXM 6.2.1+ প্রয়োজন। তবে, macOS 10.13-এ HAXM-এর মতো কার্নেল এক্সটেনশন ইনস্টল করার প্রক্র��য়াটি একটু বেশি জটিল। আপনাকে নিম্নলিখিতভাবে কার্নেল এক্সটেনশনটি ম্যানুয়ালি ইনস্টল করার অনুমতি দিতে হবে:
- প্রথমে, SDK ম্যানেজার থেকে HAXM-এর সর্বশেষ সংস্করণটি ইনস্টল করার চেষ্টা করুন।
- MacOS-এ, সিস্টেম প্রেফারেন্সেস > সিকিউরিটি অ্যান্ড প্রাইভেসি- তে যান।
যদি আপনি "Intel Corporation Apps" ডেভেলপারের সিস্টেম সফটওয়্যার লোড হতে বাধা দেওয়া হয়েছে এমন কোনো সতর্কতা দেখতে পান, তাহলে Allow-এ ক্লিক করুন:

আরও তথ্য এবং সমাধান জানতে, অ্যাপলের এই ওয়েবপেজ এবং ইস্যু ৬২৩৯৫৭৮ দেখুন।
পরিবর্তনগুলি প্রয়োগ করুন
এই বিভাগে 'পরিবর্তন প্রয়োগ করুন' সম্পর্কিত জ্ঞাত সমস্যাগুলি বর্ণনা করা হয়েছে।
নতুন অ্যাপের নাম প্রয়োগ করা হয়নি
আপনি যদি আপনার অ্যাপের নাম পরিবর্তন করে সেই পরিবর্তনটি প্রয়োগ করার চেষ্টা করেন, তাহলে আপডেট করা নামটি প্রতিফলিত নাও হতে পারে। এই সমস্যাটি সমাধান করতে, রান (Run) এ ক্লিক করুন।
আপনার অ্যাপটি পুনরায় স্থাপন করতে এবং আপনার পরিবর্তনগুলি দেখতে।
অ্যান্ড্রয়েড রানটাইমে সমস্যা হলে ত্রুটি দেখা দেয়
আপনি যদি অ্যান্ড্রয়েড ৮.০ বা ৮.১ চালিত কোনো ডিভাইস ব্যবহার করেন, তাহলে নির্দিষ্ট কিছু পরিবর্তন প্রয়োগ করার চেষ্টা করার সময় আপনি "VERIFICATION_ERROR" বার্তা দেখতে পারেন (বিশেষ করে যদি আপনি কোটলিন ব্যবহার করেন)। এই বার্তাটি অ্যান্ড্রয়েড রানটাইমের একটি সমস্যার কারণে দেখা দেয়, যা অ্যান্ড্রয়েড ৯.০ এবং তার পরবর্তী সংস্করণগুলোতে সমাধান করা হয়েছে। যদিও এই সমস্যার কারণে 'Apply Changes' ব্যর্থ হয়, তবুও আপনি 'Run' করতে পারবেন।
আপনার পরিবর্তনগুল��� দেখতে অ্যাপটি আবার খুলুন। তবে, আমরা আপনাকে ডিভাইসটি অ্যান্ড্রয়েড ৯.০ বা তার চেয়ে উন্নত সংস্করণে আপগ্রেড করার পরামর্শ দিচ্ছি।
ডিবাগিং এবং টেস্টিং
এই বিভাগে আপনার অ্যাপের ডিবাগিং ও টেস্টিং সম্পর্কিত জ্ঞাত সমস্যাগুলো বর্ণনা করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিও থেকে JUnit টেস্ট চালানোর সময় ক্লাসপাথে রিসোর্স অনুপস্থিত থাকে।
আপনার জাভা মডিউলগুলিতে যদি নির্দিষ্ট রিসোর্স ফোল্ডার থাকে, তাহলে IDE থেকে টেস্ট চালানোর সময় সেই রিসোর্সগুলি খুঁজে পাওয়া যাবে না। কমান্ড লাইন থেকে Gradle ব্যবহার করে টেস্ট চালালে তা কাজ করবে। IDE থেকে Gradle check টাস্ক এক্সিকিউট করলেও তা কাজ করবে। আরও বিস্তারিত জানতে ইস্যু 64887 দেখুন।
এই সমস্যাটি ঘটে কারণ ইন্টেলিজ ১৩ সংস্করণ থেকে ক্লাসপাথ হিসেবে শুধুমাত্র একটি ফোল্ডার থাকা বাধ্যতামূলক। ইন্টেলিজের বিল্ডার সমস্ত রিসোর্স সেই বিল্ড ফোল্ডারে কপি করে, কিন্তু গ্রেডল সেই রিসোর্সগুলো কপি করে না।
- সমাধান ১: ইউনিট টেস্ট চালানোর পরিবর্তে IDE থেকে Gradle
checkটাস্কটি চালান। - বিকল্প সমাধান ২: আপনার বিল্ড স্ক্রিপ্ট আপডেট করে রিসোর্সগুলোকে ম্যানুয়ালি বিল্ড ফোল্ডারে কপি করুন। আরও তথ্যের জন্য মন্তব্য #১৩ দেখুন।
JUnit টেস্ট চালালে কোডটি দুইবার কম্পাইল হতে পারে।
নতুন প্রজেক্ট তৈরি করার সময়, টেমপ্লেট JUnit কনফিগারেশনটি দুটি "Before launch" ধাপ সহ তৈরি হতে পারে: Make এবং Gradle-aware Make। এরপর এই কনফিগারেশনটি তৈরি করা সমস্ত JUnit রান কনফিগারেশনে প্রয়োগ করা হয়।
- বর্তমান প্রজেক্টের সমস্যাটি সমাধান করতে, Run > Edit Configurations-এ ক্লিক করুন এবং ডিফল্ট JUnit কনফিগারেশন পরিবর্তন করে শুধুমাত্র Gradle-aware Make স্টেপটি অন্তর্ভুক্ত করুন।
- ভবিষ্যতের সমস্ত প্রোজেক্টের জন্য সমস্যাটি সমাধান করতে, ফাইল > ক্লোজ প্রোজেক্ট-এ ক্লিক করুন। আপনি ওয়েলকাম স্ক্রিনটি দেখতে পাবেন। এরপর কনফিগার > প্রোজেক্ট ডিফল্টস > রান কনফিগারেশনস-এ ক্লিক করুন এবং JUnit কনফিগারেশন পরিবর্তন করে শুধুমাত্র গ্রেডল-অ্যাওয়ার মেক স্টেপটি অন্তর্ভুক্ত করুন।
কিছু টেস্ট রান কনফিগারেশন কাজ করে না।
কোনো টেস্ট মেথডে রাইট-ক্লিক করলে যে সমস্ত রান কনফিগারেশন পাওয়া যায়, তার সবকটি বৈধ নয়। বিশেষত, নিম্নলিখিত কনফিগারেশনগুলো বৈধ নয়:
- গ্রেডল রান কনফিগারেশনগুলো (যেগুলোর আইকন হিসেবে গ্রেডল লোগো থাকে) কাজ করে না।
- JUnit রান কনফিগারেশন (যার আইকনে সবুজ অ্যান্ড্রয়েড চিহ্ন থাকে না) ইন্সট্রুমেন্টেশন টেস্টের ক্ষেত্রে প্রযোজ্য নয়, কারণ এই টেস্টগুলো লোকাল JVM-এ চালানো যায় না।
নেটিভ কোড ডিবাগ করার সময় জাভা ব্রেকপয়েন্ট যোগ করা
আপনার অ্যাপটি যখন নেটিভ কোডের কোনো ব্রেকপয়েন্টে পজ করা থাকে, তখন অটো এবং ডুয়াল ডিবাগারগুলো আপনার সেট করা নতুন জাভা ব্রেকপয়েন্টগুলো তাৎক্ষণিকভাবে শনাক্ত করতে পারে না। এই সমস্যাটি এড়াতে, ডিবাগ সেশন শুরু করার আগে অথবা অ্যাপটি কোনো জাভা ব্রেকপয়েন্টে পজ করা অবস্থায় জাভা ব্রেকপয়েন্ট যোগ করুন। আরও তথ্যের জন্য, ইস্যু 229949 দেখুন।
নেটিভ ডিবাগার থেকে বেরিয়ে আসা
জাভা এবং নেটিভ কোড ডিবাগ করার জন্য অটো বা ডুয়াল ডিবাগার ব্যবহার করার সময়, যদি আপনি আপনার জাভা কোড থেকে কোনো নেটিভ ফাংশনে স্টেপ ইন করেন (উদাহরণস্বরূপ, ডিবাগারটি আপনার জাভা কোডের এমন একটি লাইনে এক্সিকিউশন থামিয়ে দেয় যা একটি নেটিভ ফাংশনকে কল করে এবং আপনি 'Step Into' ক্লিক করেন)
এবং আপনি আপনার জাভা কোডে ফিরে যেতে চাইলে, Resume Program-এ ক্লিক করুন।
বাইরে পা রাখার পরিবর্তে
অথবা পা মাড়িয়ে
আপনার অ্যাপ প্রসেসটি তখনও পজ করা থাকবে, তাই Resume Program-এ ক্লিক করুন।
এটি পুনরায় চালু করতে your-module -java ট্যাবে যান। আরও তথ্যের জন্য, ইস্যু 224385 দেখুন।
লাইব্রেরি লোড করার সময় নেটিভ ডিবাগার আটকে যায়
অ্যান্ড্রয়েড স্টুডিও ৪.২ এবং তার উচ্চতর সংস্করণে আপগ্রেড করার পর প্রথমবারের মতো নেটিভ ডিবাগার ব্যবহার করার সময়, অ্যান্ড্রয়েড ডিভাইস থেকে লাইব্রেরি লোড করার মুহূর্তে নেটিভ ডিবাগারটি সাড়া দেওয়া বন্ধ করে দিতে পারে। এই সমস্যাটি একটি স্থায়ী সমস্যা, যা ডিবাগারটি বন্ধ করে পুনরায় চালু করলেও ঘটতে থাকে। এই সমস্যাটি সমাধান করতে, $USER/.lldb/module-cache/ -এ থাকা LLDB ক্যাশে মুছে ফেলুন।
"ডিবাগার প্রসেস ১২৭ এক্সিট কোড সহ শেষ হয়েছে" এই ত্রুটির কারণে নেটিভ ডিবাগার ক্র্যাশ করে।
লিনাক্স-ভিত্তিক প্ল্যাটফর্মে নেটিভ ডিবাগার চালু করার সময় এই ত্রুটিটি দেখা দেয়। এটি নির্দেশ করে যে নেটিভ ডিবাগারের জন্য প্রয়োজনীয় লাইব্রেরিগুলোর মধ্যে একটি স্থানীয় সিস্টেমে ইনস্টল করা নেই। অনুপস্থিত লাইব্রেরির নামটি idea.log ফাইলে আগে থেকেই প্রিন্ট করা থাকতে পারে। যদি তা না থাকে, তবে কোন লাইব্রেরিগুলো অনুপস্থিত তা জানতে আপনি টার্মিনাল ব্যবহার করে অ্যান্ড্রয়েড স্টুডিও ইনস্টলেশন ডিরেক্টরিতে গিয়ে bin/lldb/bin/LLDBFrontend --version কমান্ড লাইনটি চালাতে পারেন। সাধারণত, অনুপস্থিত লাইব্রেরিটি হলো ncurses5 , কারণ কিছু সাম্প্রতিক লিনাক্স ডিস্ট্রিবিউশন ইতোমধ্যে ncurses6 এ আপগ্রেড করেছে।
প্রোফাইলারদের
এই বিভাগে প্রোফাইলারগুলোর জ্ঞাত সমস্যাগুলো বর্ণনা করা হয়েছে।
নেটিভ মেমরি প্রোফাইলার: অ্যাপ চালুর সময় প্রোফাইলিং উপলব্ধ নয়
অ্যাপ চালুর সময় নেটিভ মেমোরি প্রোফাইলার বর্তমানে অনুপলব্ধ। এই অপশনটি পরবর্তী কোনো রিলিজে উপলব্ধ হবে।
একটি বিকল্প সমাধান হিসেবে, আপনি স্টার্টআপ প্রোফাইল ক্যাপচার করার জন্য পারফেটটো স্বতন্ত্র কমান্ড-লাইন প্রোফাইলার ব্যবহার করতে পারেন।
সিপিইউ প্রোফাইলার-এ টাইমআউট ত্রুটি
আপনি যখন স্যাম্পল জাভা মেথডস বা ট্রেস জাভা মেথডস কনফিগারেশন নির্বাচন করেন, তখন অ্যান্ড্রয়েড স্টুডিও সিপিইউ প্রোফাইলার-এ "রেকর্ডিং বন্ধ করতে ব্যর্থ" ত্রুটি দেখতে পারেন। এগুলি প্রায়শই টাইমআউট ত্রুটি, বিশেষ করে যদি আপনি idea.log ফাইলে নিম্নলিখিত ত্রুটি বার্তাটি দেখতে পান:
Wait for ART trace file timed out
টাইমআউট ত্রুটিগুলো স্যাম্পল করা পদ্ধতির চেয়ে ট্রেস করা পদ্ধতিকে এবং ছোট রেকর্ডিংয়ের চেয়ে দীর্ঘ রেকর্ডিংকে বেশি প্রভাবিত করে। একটি অস্থায়ী সমাধান হিসেবে, ত্রুটিটি দূর হয় কিনা তা দেখতে ছোট রেকর্ডিং চেষ্টা করে দেখা যেতে পারে।
প্রোফাইলার ব্যবহারে টাইমআউট সমস্যা হলে, অনুগ্রহ করে আপনার ডিভাইসের মেক/মডেল এবং idea.log ও logcat থেকে প্রাসঙ্গিক এন্ট্রিগুলো উল্লেখ করে একটি বাগ রিপোর্ট করুন ।
ডিবাগিং বা প্রোফাইলিং করার সময় ADB ব্যতিক্রম
প্ল্যাটফর্ম টুলস ২৯.০.৩ ব্যবহার করার সময়, নেটিভ ডিবাগিং এবং অ্যান্ড্রয়েড স্টুডিও প্রোফাইলারগুলো সঠিকভাবে কাজ নাও করতে পারে, এবং আপনি Help > Show Log নির্বাচন করলে idea.log ফাইলে "AdbCommandRejectedException" অথবা "Failed to connect port" দেখতে পারেন। প্ল্যাটফর্ম টুলসকে ২৯.০.৪ বা তার উচ্চতর সংস্করণে আপগ্রেড করলে উভয় সমস্যার সমাধান হয়ে যায়।
প্ল্যাটফর্ম টুলস আপগ্রেড করতে, নিম্নলিখিতগুলি করুন:
- Android Studio থেকে Tools > SDK Manager-এ ক্লিক করে অথবা SDK Manager-এ ক্লিক করে SDK Manager খুলুন।
টুলবারে। - Android SDK Platform-Tools- এর পাশের চেকবক্সে ক্লিক করুন যাতে এটিতে একটি টিক চিহ্ন দেখা যায়। একটি ডাউনলোড আইকন।
বাম কলামে প্রদর্শিত হওয়া উচিত। - প্রয়োগ করুন বা ঠিক ����ে-��ে ��্লিক করুন।
প্লাগইনটি বিল্ড আউটপুট উইন্ডোকে কাজ করতে বাধা দেয়।
CMake সিম্পল হাইলাইটার প্লাগইন ব্যবহার করলে বিল্ড আউটপুট উইন্ডোতে কোনো কন্টেন্ট দেখা যায় না। বিল্ডটি রান হয় এবং বিল্ড আউটপুট ট্যাবটি দেখা যায়, কিন্তু কোনো আউটপুট প্রিন্ট হয় না ( ইস্যু #204791544 )।
ইনস্টলেশনের ক্রম লঞ্চকে বাধা দেয়
পুরোনো সংস্করণের আগে অ্যান্ড্রয়েড স্টুডিও-র নতুন সংস্করণ ইনস্টল করলে পুরোনো সংস্করণটি চালু হতে বাধা সৃষ্টি হতে পারে। উদাহরণস্বরূপ, আপনি যদি প্রথমে অ্যান্ড্রয়েড স্টুডিও-র ক্যানারি সংস্করণ ইনস্টল করেন এবং তারপরে স্থিতিশীল সংস্করণটি ইনস্টল ও চালু করার চেষ্টা করেন, তবে স্থিতিশীল সংস্করণটি চালু নাও হতে পারে। এই ধরনের ক্ষেত্রে, স্থিতিশীল (পুরোনো) সংস্করণটি চালু করার জন্য আপনাকে অবশ্যই ক্যাশে পরিষ্কার করতে হবে। macOS-এ, ক্যাশে পরিষ্কার করতে Library/ApplicationSupport/Google/AndroidStudio version_number ডিরেক্টরিটি ডিলিট করুন। Windows-এ, ক্যাশে পরিষ্কার করতে ডিস্ক ক্লিনআপ (Disk Cleanup ) ব্যবহার করুন।
এসপ্রেসো টেস্ট রেকর্ডার কম্পোজের সাথে কাজ করে না।
যেসব প্রোজেক্টে Compose অন্তর্ভুক্ত আছে, সেগুলোর সাথে Espresso Test Recorder কাজ করে না। যেসব প্রোজেক্টে Compose অন্তর্ভুক্ত আছে, সেগুলোর জন্য UI টেস্ট তৈরি করতে, “Testing your Compose layout” দেখুন।
অ-ইংরেজি কীবোর্ড লেআউটের সাথে লগক্যাট শর্টকাটের সংঘাত।
আপনি যদি ��ংরেজি ছাড়া অন্য কোনো কিবোর্ড লেআউট ব্যবহার করেন, তাহলে একটি ডিফল্ট Logcat কিবোর্ড শর্টকাট সেই লেআউটের সাথে সাংঘর্ষিক হতে পারে এবং Android Studio-তে টেক্সট এডিট করার সময় আপনাকে নির্দিষ্ট কিছু অক্ষর টাইপ করতে বাধা দিতে পারে। এই সমস্যাটি সমাধান করতে, সাংঘর্ষিক Logcat কিম্যাপটি ডিলিট করুন অথবা রি-ম্যাপ করুন। Android Studio-তে Logcat কিম্যাপগুলো এডিট করতে, Android Studio > Settings > Keymap- এ যান এবং কিম্যাপের তালিকা থেকে Logcat সার্চ করুন। আরও তথ্যের জন্য, ইস্যু #263475910 দেখুন।
অ্যান্ড্রয়েড স্টুডিও ইলেকট্রিক ইল প্যাচ ১ থেকে লগক্যাট শর্টকাটটি সরিয়ে দিলে এই সমস্যাটির সমাধান হবে।
অ্যান্ড্রয়েড গ্রেডল প্লাগইনের পরিচিত সমস্যাগুলি
এই অংশে অ্যান্ড্রয়েড গ্রেডল প্লাগইনের সর্বশেষ স্থিতিশীল সংস্করণে বিদ্যমান জ্ঞাত সমস্যাগুলো বর্ণনা করা হয়েছে।
সব ডাইনামিক-ফিচার লাইব্রেরি ডিপেন্ডেন্সি লিন্ট চেক করা হয় না।
একটি অ্যাপ মডিউল থেকে checkDependencies = true সহ lint চালালে, `dynamic-feature` লাইব্রেরির ডিপেন্ডেন্সিগুলো চেক করা হয় না, যদি না সেগুলোও অ্যাপের ডিপেন্ডেন্সি হয় ( ইস্যু #191977888 )। এর একটি বিকল্প সমাধান হিসেবে, ঐ লাইব্রেরিগুলোর উপর lint টাস্কটি চালানো যেতে পারে।
ক্যারেজ রিটার্ন অক্ষর দিয়ে নামকরণ করা ফাইল স্বাক্ষর করা
JAR সাইনিং (v1 স্কিম) ক্যারেজ রিটার্ন অক্ষরযুক্ত ফাইলের নাম সমর্থন করে না ( ইস্যু #63885809 )।
বিল্ড টাইমে ভ্যারিয়েন্ট আউটপুট পরিবর্তন করা কাজ নাও করতে পারে।
নতুন প্লাগইনটির কারণে ভ্যারিয়েন্ট এপিআই ব্যবহার করে ভ্যারিয়েন্ট আউটপুট পরিবর্তন করার সুবিধাটি কাজ করছে না। তবে, এটি এখনও সাধারণ কিছু কাজের জন্য কার্যকর, যেমন বিল্ড টাইমে APK-এর নাম পরিবর্তন করা, যা নিচে দেখানো হলো:
// If you use each() to iterate through the variant objects, // you need to start using all(). That's because each() iterates // through only the objects that already exist during configuration time— // but those object don't exist at configuration time with the new model. // However, all() adapts to the new model by picking up object as they are // added during execution. android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "${variant.name}-${variant.versionName}.apk" } }
তবে, outputFile অবজেক্ট অ্যাক্সেস করার মতো আরও জটিল কাজগুলো আর কাজ করে না। এর কারণ হলো, কনফিগারেশন পর্যায়ে ভ্যারিয়েন্ট-নির্দিষ্ট টাস্কগুলো আর তৈরি করা হয় না। এর ফলে প্লাগইনটি তার সমস্ত আউটপুট সম্পর্কে আগে থেকে জানতে পারে না, কিন্তু এর মানে হলো কনফিগারেশনের সময়ও দ্রুততর হয়।
manifestOutputFile আর উপলব্ধ নেই
processManifest.manifestOutputFile() মেথডটি এখন আর উপলব্ধ নেই, এবং এটি কল করলে আপনি নিম্নলিখিত ত্রুটিটি পাবেন:
A problem occurred configuring project ':myapp'. Could not get unknown property 'manifestOutputFile' for task ':myapp:processDebugManifest' of type com.android.build.gradle.tasks.ProcessManifest.
প্রতিটি ভ্যারিয়েন্টের জন্য ম্যানিফেস্ট ফাইল পেতে manifestOutputFile() কল করার পরিবর্তে, আপনি processManifest.manifestOutputDirectory() কল করে সেই ডিরেক্টরির পাথ পেতে পারেন যেখানে তৈরি হওয়া সমস্ত ম্যানিফেস্ট রয়েছে। এরপর আপনি একটি ম্যানিফেস্ট খুঁজে নিয়ে তাতে আপনার লজিক প্রয়োগ করতে পারেন। নিচের নমুনাটি ম্যানিফেস্টের ভার্সন কোড ডাইনামিকভাবে পরিবর্তন করে:
android.applicationVariants.all { variant -> variant.outputs.all { output -> output.processManifest.doLast { // Stores the path to the maifest. String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml" // Stores the contents of the manifest. def manifestContent = file(manifestPath).getText() // Changes the version code in the stored text. manifestContent = manifestContent.replace('android:versionCode="1"', String.format('android:versionCode="%s"', generatedCode)) // Overwrites the manifest with the new text. file(manifestPath).write(manifestContent) } } }
AGP 7.3.0 AIDL সাপোর্ট এবং Kotlin 1.7.x নিয়ে সমস্যাসমূহ
Kotlin 1.7.x-এ KAPT-এর সাথে AGP 7.3.0 ব্যবহার করলে নির্দিষ্ট বিল্ড ভ্যারিয়েন্টের জন্য AIDL সোর্স সেটগুলো মুছে যায়। আপনি এখনও অন্যান্য AIDL সোর্স সেটগুলো ব্যবহার করতে পারবেন, যার মধ্যে main/ , বিল্ড টাইপ, প্রোডাক্ট ফ্লেভার এবং প্রোডাক্ট ফ্লেভারের সংমিশ্রণ অন্তর্ভুক্ত। যদি আপনার ভ্যারিয়েন্ট-নির্দিষ্ট AIDL সোর্স সেটগুলো ব্যবহার করার প্রয়োজন হয়, তবে Kotlin 1.6.21 ব্যবহার করা চালিয়ে যান।
পরিচিত সমস্যাগুলো সমাধান করা হয়েছে।
এই বিভাগে সাম্প্রতিক একটি রিলিজে সমাধান করা পরিচিত সমস্যাগুলো বর্ণনা করা হয়েছে। আপনি যদি এই সমস্যাগুলোর কোনোটির সম্মুখীন হন, তবে আপনার অ্যান্ড্রয়েড স্টুডিওকে সর্বশেষ স্থিতিশীল বা প্রিভিউ সংস্করণে আপডেট করা উচিত।
অ্যান্ড্রয়েড স্টুডিও ২০২১.১.১ সংস্করণে সমাধান করা হয়েছে।
- লিন্ট আউটপুট অনুপস্থিত : লিন্ট টাস্ক
UP-TO-DATEথাকলেstdoutএ কোনো লিন্ট টেক্সট আউটপুট প্রিন্ট করা হয় না ( ইস্যু #191897708 )। AGP 7.1.0-alpha05-এ এটি ঠিক করা হয়েছে। - Hilt প্লাগইন ব্যবহার করে এমন একটি অ্যাপ প্রজেক্টের ইউনিট টেস্টিং-এর সমস্যা : ইউনিট টেস্ট ক্লাসপাথে নন-ইনস্ট্রুমেন্টেড অ্যাপ ক্লাসগুলো থাকে, যার মানে হলো ইউনিট টেস্ট চালানোর সময় Hilt ডিপেন্ডেন্সি ইনজেকশন হ্যান্ডেল করার জন্য অ্যাপ ক্লাসগুলোকে ইনস্ট্রুমেন্ট করে না ( ইস্যু #213534628 )। AGP 7.1.1-এ এটি সমাধান করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিও ২০২০.৩.১-এ সমাধান করা হয়েছে।
- কোটলিন প্রজেক্টে লিন্ট এক্সেপশন: যেসব কোটলিন প্রজেক্টে
checkDependencies = trueসেট করা থাকে, সেগুলোতে নাল পয়েন্টার এক্সেপশন বা এরর দেখা দিতে পারে ( ইস্যু #158777858 )।
অ্যান্ড্রয়েড স্টুডিও ৪.২-এ সমাধান করা হয়েছে।
- macOS Big Sur-এ IDE ফ্রিজ হয়ে যায়: কোনো ডায়ালগ খোলার সময় Android Studio 4.1 ফ্রিজ হয়ে যেতে পারে।
অ্যান্ড্রয়েড স্টুডিও ৪.১-এ সমাধান করা হয়েছে।
- IDE-এর পূর্ববর্তী সংস্করণ থেকে মেমরি সেটিংস প্রয়োগ করতে রিস্টার্ট করুন: Android Studio আপডেট করার পরে, IDE-এর পূর্ববর্তী সংস্করণ থেকে স্থানান্তরিত যেকোনো মেমরি সেটিংস প্রয়োগ করার জন্য আপনাকে Android Studio রিস্টার্ট করতে হবে।
- কাস্টম পারমিশন স্ট্রি�� ���� ��������ন�����েস্ট ক্লাস এখন আর ডিফল্টরূপে তৈরি হয় না: যদি আপনি ক্লাসটি তৈরি করতে চান, তাহলে
android.generateManifestClass = trueসেট করুন।
অ্যান্ড্রয়েড স্টুডিও ৩.৬-এ সমাধান করা হয়েছে।
LineageOS-এ APK ইনস্টলেশন ত্রুটি : LineageOS বা CyanogenMod-এর নির্দিষ্ট কিছু সংস্করণ চালিত ডিভাইসগুলিতে আপনার অ্যাপ স্থাপন করা ব্যর্থ হতে পারে এবং একটি
INSTALL_PARSE_FAILED_NOT_APKব্যতিক্রম দেখাতে পারে।Android Studio 3.6 Beta 1 এবং এর পরবর্তী সংস্করণগুলিতে, আপনি যখন আপনার অ্যাপটি LineageOS বা CyanogenMod ডিভাইসে ডেপ্লয় করেন, তখন IDE এই ব্যতিক্রমটি সামাল দেওয়ার জন্য একটি সম্পূর্ণ অ্যাপ ইনস্টল করে, যার ফলে ডেপ্লয় হতে বেশি সময় লাগতে পারে।
অ্যান্ড্রয়েড স্টুডিও ৩.৫.২-এ সমাধান করা হয়েছে।
- ত্রুটিপূর্ণ XML কোড স্টাইল : XML কোড সম্পাদনা করার সময়, আপনি মেনু বার থেকে Code > Reformat Code নির্বাচন করলে IDE একটি ভুল কোড স্টাইল প্রয়োগ করেছে।
অ্যান্ড্রয়েড স্টুডিও ৩.৩.১-এ সমাধান করা হয়েছে।
C++-ভিত্তিক প্রজেক্ট স্ক্যান করার সময় মেমোরি শেষ হয়ে যাওয়ার ত্রুটি : যখন Gradle এমন কোনো প্রজেক্ট স্ক্যান করে যেখানে একই ড্রাইভের একাধিক স্থানে C++ কোড রয়েছে, তখন স্ক্যানটি প্রথম সাধারণ ডিরেক্টরির নিচের সমস্ত ডিরেক্টরি অন্তর্ভুক্ত করে। বিপুল সংখ্যক ডিরেক্টরি এবং ফাইল স্ক্যান করার ফলে মেমোরি শেষ হয়ে যাওয়ার ত্রুটি দেখা দিতে পারে।
এই সমস্যাটি সম্পর্কে আরও তথ্যের জন্য, এর সাথে সম্পর্কিত বাগটি পড়ুন।