আপনি যদি প্রথম দিনগুলিতে ফ্লাটার ব্যান্ডওয়াগনের উপর ঝাঁপিয়ে পড়ে থাকেন তবে সম্ভবত আপনার কাছে একটি বা দুটি প্রকল্প রয়েছে যা ফ্লটারের 1.12 সংস্করণের আগে তৈরি করা হয়েছিল। যদি তা হয়, আপনি যখনই Pub চালাবেন তখনই আপনি এই বার্তাটি দেখে থাকবেন আপনার একটি প্রকল্পে প্রবেশ করুন:
এই অ্যাপ্লিকেশানটি Android এম্বেডিংয়ের একটি বাতিল সংস্করণ ব্যবহার করছে৷
অপ্রত্যাশিত রানটাইম ব্যর্থতা বা ভবিষ্যতে বিল্ড ব্যর্থতা এড়াতে, এই অ্যাপটিকে V2 এম্বেডিং-এ স্থানান্তর করার চেষ্টা করুন।
একটি অ্যাপ স্থানান্তর করার জন্য ডক্স দেখুন:https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
এখন, নথিতে নিজেই এই সতর্কতাটি অদৃশ্য করার জন্য আপনাকে অনুসরণ করতে হবে এমন পদক্ষেপগুলি রয়েছে, তবে এটি সর্বদা কী এবং কোথায় পরিবর্তন করতে হবে তা স্পষ্ট করে না।
এই নিবন্ধটি আপনাকে আপনার ফ্লাটার অ্যাপ্লিকেশনকে V2 এম্বেডিং-এ স্থানান্তরিত করার জন্য ধাপে ধাপে ওয়াকথ্রু দেবে যাতে আপনি সেই সতর্কতাটিকে ভালোভাবে দূরে সরিয়ে দিতে পারেন।
স্বয়ংক্রিয় স্থানান্তর - সহজ উপায়
এটা বলা দরকার যে আপনার আবেদন সহজে পুনরায় তৈরি করা গেলে আপনি মাইগ্রেশনের এই প্রক্রিয়াটি এড়িয়ে যেতে পারেন। তাহলে এর মানে কি?
ঠিক আছে, যদি আপনার অ্যাপ্লিকেশনের কোডটি জটিল না হয়, তাহলে আপনি কেবল আপনার lib ফোল্ডারে ফাইলগুলি সংরক্ষণ করতে পারেন এবং flutter create ব্যবহার করে একটি নতুন প্রকল্প তৈরি করতে পারেন। . এইভাবে, আপনার কাছে এমন একটি প্রকল্প থাকবে যা ইতিমধ্যেই V2 এম্বেডিং-এ স্থানান্তরিত হয়েছে এবং আপনার lib ফোল্ডারে আপনার কোডটি কপি পেস্ট করতে হবে৷
কিন্তু, যদি আপনার প্রকল্পটি আরও জটিল হয় – ধরা যাক এটি এমন একটি প্যাকেজ যাতে প্ল্যাটফর্ম নির্দিষ্ট কোড রয়েছে – আপনি সম্ভবত এটিকে ম্যানুয়ালি স্থানান্তর করার মাধ্যমে আরও ভাল হবেন৷
ম্যানুয়াল মাইগ্রেশন – এই ধাপগুলি অনুসরণ করুন
- MainActivity খুলুন আপনার অ্যাপ্লিকেশনে .kt (বা .java) ফাইল
- আপনাকে এই ফাইলটিতে থাকা যেকোনো বিষয়বস্তু মুছে ফেলতে হবে এবং শুধুমাত্র একটি ক্লাস ডিক্লেয়ারেশন দিয়ে এটিকে খালি রেখে দিতে হবে (যদি না সেখানে আপনার নির্দিষ্ট যুক্তি থাকে)।
- সমস্ত আমদানি মুছে ফেলুন এবং নিশ্চিত করুন যে একটি আমদানি আছে তা হল:
import io.flutter.embedding.android.FlutterActivity;
শেষ ফলাফলটি নিম্নরূপ হওয়া উচিত:
import io.flutter.embedding.android.FlutterActivity;
public class MainActivity extends FlutterActivity {
// Nothing should be here
}
- AndroidManifest.xml ফাইলটি খুলুন এবং অ্যাপ্লিকেশন ট্যাগের অধীনে নামের বৈশিষ্ট্যটিকে
${applicationName}এ পরিবর্তন করুন - তাই এটি এই মত দেখায়:
<application
android:name="${applicationName}">
....
</application>
- আপনার অ্যাপ্লিকেশন ট্যাগের ভিতরে আপনাকে নিম্নলিখিত মেটা ডেটা যোগ করতে হবে:
<meta-data
android:name="flutterEmbedding"
android:value="2" />
- আপনি যদি একটি নির্দিষ্ট স্প্ল্যাশ স্ক্রীন আচরণ চান, তাহলে আপনাকে স্প্ল্যাশ স্ক্রীন মেটা ট্যাগটি সরাতে হবে:
<meta-data android:name="io.flutter.app.android.SplashScreenUntilFirstFrame" android:value="true" />
- তারপর আপনার styles.xml ফাইলে যান এবং সেখানে আপনার পছন্দ অনুযায়ী লঞ্চ থিম কনফিগার করুন:
<?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="http://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 লাইব্রেরিগুলি ব্যবহার করার জন্য আপনার প্রকল্পের স্থানান্তরিত করার প্রয়োজন হতে পারে। আপনি যখন আপনার অ্যাপ্লিকেশনটি তৈরি এবং চালান তখন আপনাকে এর জন্য সতর্ক করা হবে:
আপনার অ্যাপ AndroidX ব্যবহার করছে না। সম্ভাব্য বিল্ড ব্যর্থতা এড়াতে, আপনি https://goo.gl/CP92wY-এ ধাপগুলি অনুসরণ করে দ্রুত আপনার অ্যাপ স্থানান্তর করতে পারেন৷
এটির সমাধান করা বেশ সহজ, কারণ Android Studio AndroidX-এ স্থানান্তরিত করার সমর্থনে তৈরি করেছে৷
৷একটি স্বতন্ত্র প্রকল্প হিসাবে আপনার ফ্লটার অ্যাপ্লিকেশনের Android ফোল্ডারটি খোলার মাধ্যমে শুরু করুন
Refactor → Migrate to AndroidX:
-এ ক্লিক করুন
AndroidX-এ মাইগ্রেট করতে ড্রপডাউন মেনু
তারপরে আপনাকে আপনার প্রকল্পের একটি অনুলিপি সংরক্ষণ করার জন্য অনুরোধ করা হবে এবং এর পরে, স্থানান্তর প্রক্রিয়াটি ঘটবে৷
ত্রুটি আপনি দেখতে পারেন
এই মাইগ্রেশন প্রক্রিয়া চলাকালীন, আপনার অ্যাপ্লিকেশন তৈরি করার সময় আপনি বিভিন্ন ত্রুটির সম্মুখীন হতে পারেন। সবচেয়ে বিশিষ্টগুলো হল:
- পরিবর্তনযোগ্য Windows পরিবেশ পরিবর্তনশীল মানচিত্র পেতে অক্ষম৷
- cvc-complex-type.2.4.a:'বেস-এক্সটেনশন' এলিমেন্ট দিয়ে শুরু করে অবৈধ কন্টেন্ট পাওয়া গেছে। ‘{layoutlib}’-এর মধ্যে একটি প্রত্যাশিত৷
- সতর্কতা:এই সংস্করণটি শুধুমাত্র 2 পর্যন্ত SDK XML সংস্করণ বুঝতে পারে কিন্তু সংস্করণ 3-এর একটি SDK XML ফাইলের সম্মুখীন হয়েছে৷ এটি ঘটতে পারে যদি আপনি Android স্টুডিওর সংস্করণ এবং বিভিন্ন সময়ে প্রকাশিত কমান্ড-লাইন সরঞ্জামগুলি ব্যবহার করেন
প্রথম দুটি ত্রুটি একে অপরের সাথে সম্পর্কিত এবং উভয়ই একই মূল কারণ থেকে উদ্ভূত। এটি কারণ আপনার প্রকল্পটি একটি পুরানো গ্রেডল সংস্করণের সাথে সেট আপ করা হয়েছিল এবং এটি আপগ্রেড করার প্রয়োজন।
এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- একটি স্বতন্ত্র প্রকল্প হিসাবে আপনার ফ্লটার অ্যাপ্লিকেশনে অ্যান্ড্রয়েড ফোল্ডারটি খুলুন
- ফাইল → প্রজেক্ট স্ট্রাকচারে ক্লিক করুন:
প্রজেক্ট স্ট্রাকচার নির্বাচন করতে ড্রপডাউন মেনু
- Gradle সংস্করণটিকে আরও সাম্প্রতিক কিছুতে পরিবর্তন করুন এবং এটি আপনার ব্যবহার করা বর্তমান অ্যান্ড্রয়েড স্টুডিও সংস্করণটির সাথে মেলে
AGP এবং Gradle সেটিংস স্ক্রীন
আপনি টুলস →এজিপি আপগ্রেড সহকারী:
এ গিয়ে এটি করার জন্য এজিপি আপগ্রেড সহকারী ব্যবহার করতে পারেন।
AGP আপগ্রেড সহকারী ব্যবহার করে AGP আপগ্রেড করতে ড্রপডাউন মেনু
তৃতীয় সমস্যা, যা একটি সতর্কতা, Android SDK টুলগুলির একটি পুরানো সংস্করণ থাকার কারণে হতে পারে৷ এটি কীভাবে করবেন তা শিখতে, আপনি এখানে যেতে পারেন।
আপনার প্রকল্প এখন সম্পূর্ণরূপে স্থানান্তরিত হওয়া উচিত, কম্পাইল করা এবং মসৃণভাবে চলমান।
আপনি যদি আমার লেখা অন্য নিবন্ধগুলি পড়তে চান তবে আপনি সেগুলি এখানে দেখতে পারেন:
বিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন