কম্পিউটার টিউটোরিয়াল

Flutter টিউটোরিয়াল: আপনার অ্যাপকে লেটেস্ট V2 Android Embedding-এ মাইগ্রেট করুন

আপনি যদি Flutter-এর প্রাথমিক দিনগুলিতে সাওয়ার হন, সবচেয়ে সম্ভব আপনার এক বা দুই প্রজেক্ট আছে যা Flutter 1.12 ভার্সনের আগে তৈরি হয়েছিল। যদি সেটি হয়, তবে আপনি Pub get চালালে আপনার প্রজেক্টের একটিয় এই মেসেজটি দেখতে পেতে পারেন:

This app is using a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to migrate this app to the V2 embedding.

Take a look at the docs for migrating an app: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects

এখন, ডকুমেন্টেশনটিতে वो স্টেপস রয়েছে যা আপনাকে ফলো করতে হবে এই সতর্কতা মুছে ফেলার জন্য, কিন্তু এটি সবসময় স্পষ্ট করে না কী পরিবর্তন করতে হবে এবং কোথায়।

এই আর্টিকেলটি আপনাকে ধাপে ধাপে ওয়াকথ্রু দেবে আপনার Flutter অ্যাপ্লিকেশনকে V2 Embedding-এ মাইগ্রেট করার জন্য যাতে আপনি সেই সতর্কতাটি সदा সার্বিকaltimeके জন্য মুছে ফেলতে পারেন।

অটোমেটিক মাইগ্রেশন - সহজ পথ

এটি বলা দরকার যে আপনি এই মাইগ্রেশন প্রক্রিয়া এড়িয়ে যেতে পারেন যদি আপনার অ্যাপ্লিকেশন সহজে পুনরায় তৈরি করা যায়। এর মানে কী?

যদি আপনার অ্যাপ্লিকেশনের কোড জটিল না হয়, তবে আপনি শুধু আপনার lib ফোল্ডারের ফাইলগুলো সেভ করুন এবং flutter create ব্যবহার করে একটি নতুন প্রজেক্ট তৈরি করুন। যেভাবে, আপনার একটি প্রজেক্ট থাকবে যা ইতিমধ্যে V2 Embedding-এ মাইগ্রেট করা আছে এবং শুধু আপনার lib ফোল্ডারের কোড কপি-পেস্ট করতে হবে।

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

ম্যানুয়াল মাইগ্রেশন - এই স্টেপগুলো ফলো করুন

  1. MainActivity.kt (বা .java) ফাইলটি খুলুন আপনার অ্যাপ্লিকেশনে
  2. এই ফাইলে যা কিছু কন্টেন্ট আছে সেগুলো রিমুভ করুন এবং শুধু ক্লাস ডিক্লেয়ারেশন রেখে দিন (যদি আপনার সেখানে স্পেসিফিক লজিক না থাকে)।
  3. সকল ইম্পোর্ট রিমুভ করুন এবং নিশ্চিত করুন একটি ইম্পোর্ট থাকছে যা হচ্ছে:
import io.flutter.embedding.android.FlutterActivity; 

ফাইনাল রেজাল্ট এভাবে হওয়া উচিত:

import io.flutter.embedding.android.FlutterActivity; public class MainActivity extends FlutterActivity { // Nothing should be here } 
  1. AndroidManifest.xml ফাইলটি খুলুন এবং application ট্যাগের নিচে name attribute কে ${applicationName} এ পরিবর্তন করুন - যেন এভাবে দেখায়:
<application android:name="${applicationName}"> .... </application> 
  1. আপনাকে নিচের মেটা ডেটা যোগ করতে হবে আপনার application ট্যাগের ভিতরে:
<meta-data android:name="flutterEmbedding" android:value="2" /> 
  1. আপনি যদি একটি স্পেসিফিক Splash screen আচরণ চান, তবে আপনাকে Splash screen মেটা ট্যাগ রিমুভ করতে হবে:
<meta-data android:name="io.flutter.app.android.SplashScreenUntilFirstFrame" android:value="true" /> 
  1. তারপর আপনার styles.xml ফাইলে যান এবং LaunchTheme কনফিগার করুন আপনার পছন্দের drawable দিয়ে:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> <item name="android:windowBackground">@drawable/launch_background </item> </style> </resources> 

উপরের সব পরিবর্তনের পর আপনার AndroidManifest.xml এমন দেখাবে:

<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="PACKAGE_NAME"> <application android:name="${applicationName}" android:label="APPLICATION_LABEL" android:icon="@mipmap/ic_launcher"> <activity android:name=".MainActivity" android:exported="true" android:launchMode="singleTop" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <meta-data android:name="flutterEmbedding" android:value="2" /> </application> </manifest> 

AndroidX সাপোর্ট

আপনার প্রজেক্টটিকে হয়তো AndroidX লাইব্রেরি ব্যবহার করতে মাইগ্রেট করতে হবে পুরনো সাপোর্ট লাইব্রেরির বদলে। আপনি এর জন্য সতর্ক হবেন যখন আপনি বিল্ড এবং রান করবেন আপনার অ্যাপ্লিকেশন:

Your app isn’t using AndroidX. To avoid potential build failures, you can quickly migrate your app by following the steps on https://goo.gl/CP92wY.

এটি ফিক্স করা যথার্থ সহজ, কারণ Android Studio-তে AndroidX-এ মাইগ্রেট করার বিল্ট-ইন সাপোর্ট রয়েছে।

আপনার Flutter অ্যাপ্লিকেশনের Android ফোল্ডারটি একটি スタンドঅ্যালোন প্রজেক্ট হিসেবে খুলুন

Refactor → Migrate to AndroidX-এ ক্লিক করুন:

Flutter টিউটোরিয়াল: আপনার অ্যাপকে লেটেস্ট V2 Android Embedding-এ মাইগ্রেট করুন AndroidX-এ মাইগ্রেট করার ড্রপডাউন মেনু

আপনাকে তখন আপনার প্রজেক্টের একটি কপি সেভ করার জন্য বলা হবে এবং তারপর, মাইগ্রেশন প্রক্রিয়া শুরু হবে।

আপনি যেসব এরর দেখতে পারেন

এই মাইগ্রেশন প্রক্রিয়ার সময়, আপনি আপনার অ্যাপ্লিকেশন বিল্ড করার সময় বেশ কিছু এরর দেখতে পারেন। সবচেয়ে প্রমিনেন্টগুলো হলো:

  • Unable to get mutable Windows environment variable map
  • cvc-complex-type.2.4.a: Invalid content was found starting with element ‘base-extension’. One of ‘{layoutlib}’ is expected
  • Warning: This version only understands SDK XML versions up to 2 but an SDK XML file of version 3 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times

প্রথম দুটি এরর একে অপরের সাথে সম্পর্কিত এবং উভয়ই একই রুট কজ থেকে আসে। এটা কারণ আপনার প্রজেক্ট একটি পুরনো Gradle ভার্সনে সেট আপ করা ছিল এবং এটি আপগ্রেড করা দরকার।

এটি করতে, এই স্টেপগুলো ফলো করুন:

  1. আপনার Flutter অ্যাপ্লিকেশনের Android ফোল্ডারটি একটি স্ট্যান্ডঅ্যালোন প্রজেক্ট হিসেবে খুলুন
  2. File → Project Structure-এ ক্লিক করুন:

Flutter টিউটোরিয়াল: আপনার অ্যাপকে লেটেস্ট V2 Android Embedding-এ মাইগ্রেট করুন Project Structure সিলেক্ট করার ড্রপডাউন মেনু

  1. Gradle ভার্সনটি কিছুটা সাম্প্রতিক এবং আপনার ব্যবহার করা বর্তমান Android Studio ভার্সনের সাথে মেলানো একটিishga পরিবর্তন করুন

Flutter টিউটোরিয়াল: আপনার অ্যাপকে লেটেস্ট V2 Android Embedding-এ মাইগ্রেট করুন AGP এবং Gradle সেটিংস স্ক্রিন

আপনি AGP Upgrade Assistant-ও ব্যবহার করতে পারেন এটি করার জন্য Tools → AGP Upgrade Assistant-এ যেতে:

Flutter টিউটোরিয়াল: আপনার অ্যাপকে লেটেস্ট V2 Android Embedding-এ মাইগ্রেট করুন AGP Upgrade Assistant ব্যবহার করে AGP আপগ্রেড করার ড্রপডাউন মেনু

তৃতীয় ইস্যু, যা একটি সতর্কতা, হয়তো পুরনো ভার্সনের Android SDK Tools থাকায় হয়। সেটি কীভাবে করবেন সেটি জানতে আপনি এখানে যেতে পারেন।

আপনার প্রজেক্ট এখন পুরোপুরি মাইগ্রেটেড, কম্পাইলিং এবং স্মুথলি রানিং হওয়া উচিত।

আপনি যদি আমার লেখা অন্যান্য আর্টিকেল পড়তে চান, তবে এখানে চেক আউট করতে পারেন:

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started


  1. BDlot DVD Clone Ultimate + ফ্রি গিভeway

  2. আপনার Mac-এ কতটুকু ডিস্ক স্পেস আছে তা যাচাই করার পদ্ধতি

  3. Scribus দিয়ে সহজে ব্রোশার তৈরি করুন

  4. উইন্ডোজ ডোমেন কম্পিউটারে গ্রুপ পলিসি সেটিংস আপডেট করা