Flutter ডেভেলপমেন্টের সময় দেখা দেওয়া সাধারণ কিছু এরর এবং তাদের সমাধানের তালিকা নিচে দেওয়া হলো। এই গাইডটি নতুন এবং অভিজ্ঞ ডেভেলপারদের জন্য সহায়ক হবে।
- UI সম্পর্কিত এরর
- State ম্যানেজমেন্ট এরর
- ডিপেন্ডেন্সি এবং প্যাকেজ এরর
- প্ল্যাটফর্ম স্পেসিফিক এরর
- অন্যান্য সাধারণ এরর
- অতিরিক্ত সাধারণ এরর
- অতিরিক্ত টিপস
- কারণ: Row/Column-এর চাইল্ড উইজেট স্ক্রিনের বাইরে চলে যায়।
- সমাধান: Expanded বা Flexible ব্যবহার করুন।
- কারণ: উইজেটের সাইজ (height/width) ডিফাইন করা নেই।
- সমাধান: SizedBox, Expanded, বা নির্দিষ্ট width/height দিন।
- কারণ: ListView/GridView-কে Column-এর ভিতরে রাখা হয়েছে।
- সমাধান: ListView-কে Expanded দিয়ে র্যাপ করুন।
- কারণ: build() মেথডের ভিতরে setState() কল করা হয়েছে।
- সমাধান: WidgetsBinding.addPostFrameCallback ব্যবহার করুন।
- কারণ: একই ScrollController একাধিক ListView/GridView-এ ব্যবহার করা হয়েছে।
- সমাধান: প্রতিটি স্ক্রোল ভিউয়ের জন্য আলাদা ScrollController ব্যবহার করুন।
- কারণ: MaterialApp বা CupertinoApp রুটে নেই।
- সমাধান: MaterialApp দিয়ে অ্যাপ র্যাপ করুন।
- কারণ: Expanded সরাসরি Row/Column-এর বাইরে ব্যবহার করা হয়েছে।
- সমাধান: শুধুমাত্র Row/Column-এর চাইল্ড হিসেবে Expanded রাখুন।
- কারণ: null অবজেক্টে ! (non-null assertion) ব্যবহার করা হয়েছে।
- সমাধান: ?, ??, বা if (variable != null) ব্যবহার করুন।
- কারণ: pubspec.yaml-এ অ্যাসেট পাথ ভুল বা flutter pub get রান করা হয়নি।
- সমাধান: অ্যাসেট পাথ চেক করুন এবং flutter pub get রান করুন।
- কারণ: প্যাকেজ ভার্সন কনফ্লিক্ট বা ইন্টারনেট সংযোগ সমস্যা।
- সমাধান: flutter pub upgrade বা pubspec.yaml চেক করুন।
- কারণ: প্ল্যাটফর্ম-স্পেসিফিক কোড (Android/iOS) লোড হয়নি।
- সমাধান: flutter clean ও প্ল্যাটফর্ম ফোল্ডার রিবিল্ড করুন।
- কারণ: Scaffold-এর বাইরে Scaffold.of(context) কল করা হয়েছে।
- সমাধান: Builder উইজেট ব্যবহার করুন অথবা GlobalKey ব্যবহার করুন।
- কারণ: Completer বা Future একাধিকবার কমপ্লিট করা হয়েছে।
- সমাধান: completer.isCompleted চেক করুন।
- কারণ: একই Key একাধিক উইজেটে ব্যবহার করা হয়েছে।
- সমাধান: UniqueKey() বা ValueKey() ব্যবহার করুন।
- কারণ: MaterialApp-এর বাইরে MediaQuery.of(context) কল করা হয়েছে।
- সমাধান: MediaQuery উইজেট দিয়ে র্যাপ করুন।
- কারণ: late কিওয়ার্ড ব্যবহার করে ভেরিয়েবল ইনিশিয়ালাইজ না করেই ব্যবহার করা হয়েছে।
- সমাধান: ইনিশিয়ালাইজেশন নিশ্চিত করুন অথবা late? বাদ দিয়ে ? ব্যবহার করুন।
- কারণ: JSON পার্সিংয়ের সময় টাইপ মিসম্যাচ হয়েছে।
- সমাধান: JSON স্ট্রাকচার এবং টাইপ কাস্টিং সঠিক করুন।
- কারণ: UI রেন্ডার করার সময় স্টেট পরিবর্তন করা হয়েছে।
- সমাধান: WidgetsBinding.instance.addPostFrameCallback() ব্যবহার করুন।
- কারণ: Navigator.of(context) এমন কনটেক্সটে কল করা হয়েছে যেখানে Navigator নেই।
- সমাধান: সঠিক কনটেক্সট থেকে Navigator কল করুন।
- কারণ: ইনভ্যালিড JSON ডাটা পার্সিং হয়েছে।
- সমাধান: JSON ডাটার ভ্যালিডিটি চেক করুন।
- কারণ: একই Container-এ color ও decoration একসাথে ব্যবহার করা হয়েছে যেখানে decoration-এ color আছে।
- সমাধান: color অথবা decoration থেকে একটি সরান।
- কারণ: null ভ্যালুতে মেথড কল হয়েছে।
- সমাধান: null চেক ব্যবহার করুন অথবা ? অপারেটর লাগান।
- কারণ: প্লাগইনের প্ল্যাটফর্ম কোড লোড হয়নি।
- সমাধান: flutter clean, flutter pub get ও অ্যাপ রিবিল্ড করুন।
- Hot Reload না কাজ করলে: flutter clean + অ্যাপ রিস্টার্ট করুন।
- ডিবাগিং: debugPrint() বা flutter logs ব্যবহার করুন।
- প্যাকেজ ক্যাশে সমস্যা হলে: flutter pub cache repair রান করুন।
এই গাইডটি ফলো করলে অনেক সাধারণ সমস্যার সমাধান সহজেই করা যাবে। Happy Fluttering!