Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Android

फ़्लटर ट्यूटोरियल:अपने ऐप को नवीनतम V2 Android एंबेडिंग पर माइग्रेट करें

फ़्लटर ट्यूटोरियल:अपने ऐप को नवीनतम V2 Android एंबेडिंग पर माइग्रेट करें <पी> यदि आप शुरुआती दिनों में फ़्लटर बैंडवैगन पर चढ़े थे, तो संभवतः आपके पास एक या दो प्रोजेक्ट हैं जो फ़्लटर के संस्करण 1.12 से पहले बनाए गए थे। यदि ऐसा मामला है, तो जब भी आप अपने किसी प्रोजेक्ट में पब गेट चलाते हैं तो आपने यह संदेश देखा होगा:

<पी> यह ऐप एंड्रॉइड एम्बेडिंग के अप्रचलित संस्करण का उपयोग कर रहा है।
अप्रत्याशित रनटाइम विफलताओं, या भविष्य की बिल्ड विफलताओं से बचने के लिए, इस ऐप को V2 एम्बेडिंग पर माइग्रेट करने का प्रयास करें। <पी> किसी ऐप को माइग्रेट करने के लिए दस्तावेज़ों पर एक नज़र डालें:https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects

<पी> अब, इस चेतावनी को गायब करने के लिए दस्तावेज़ में ही वे चरण हैं जिनका आपको पालन करना होगा, लेकिन यह हमेशा स्पष्ट नहीं करता है कि क्या बदलना है और कहाँ बदलना है। <पी> यह आलेख आपको अपने फ़्लटर एप्लिकेशन को V2 एंबेडिंग में स्थानांतरित करने के बारे में चरण दर चरण जानकारी देगा ताकि आप उस चेतावनी को हमेशा के लिए दूर कर सकें।

स्वचालित प्रवासन - आसान रास्ता

<पी> यह कहने की आवश्यकता है कि यदि आपका एप्लिकेशन आसानी से दोबारा बनाया जा सकता है तो आप माइग्रेशन की इस प्रक्रिया को छोड़ सकते हैं। तो इसका मतलब क्या है? <पी> ठीक है, यदि आपके एप्लिकेशन में कोड जटिल नहीं है, तो आप फ़ाइलों को अपने lib फ़ोल्डर में सहेज सकते हैं और flutter create का उपयोग करके एक नया प्रोजेक्ट बना सकते हैं। . इस तरह, आपके पास एक प्रोजेक्ट होगा जो पहले से ही V2 एंबेडिंग में माइग्रेट हो चुका है और आपको बस अपने lib फ़ोल्डर में मौजूद कोड को कॉपी पेस्ट करना होगा।

<पी> लेकिन, यदि आपका प्रोजेक्ट अधिक जटिल है - मान लीजिए कि यह एक पैकेज है जिसमें प्लेटफ़ॉर्म विशिष्ट कोड है - तो संभवतः इसे मैन्युअल रूप से माइग्रेट करना आपके लिए बेहतर होगा।

मैन्युअल माइग्रेशन - इन चरणों का पालन करें

  1. मुख्य गतिविधि खोलें आपके एप्लिकेशन में .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 फ़ाइल खोलें और एप्लिकेशन टैग के अंतर्गत नाम विशेषता को ${applicationName} में बदलें – तो यह इस तरह दिखता है:
<application 
 android:name="${applicationName}"> 
 .... 
</application>
  1. आपको अपने एप्लिकेशन टैग के अंदर निम्नलिखित मेटा डेटा जोड़ना होगा:
<meta-data 
 android:name="flutterEmbedding" 
 android:value="2" />
  1. यदि आप एक विशिष्ट स्प्लैश स्क्रीन व्यवहार चाहते हैं, तो आपको स्प्लैश स्क्रीन मेटा टैग को हटाना होगा:
<meta-data android:name="io.flutter.app.android.SplashScreenUntilFirstFrame" android:value="true" />
  1. फिर अपनी style.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 पर दिए गए चरणों का पालन करके अपने ऐप को तुरंत माइग्रेट कर सकते हैं।

<पी> इसे ठीक करना काफी सरल है, क्योंकि एंड्रॉइड स्टूडियो ने एंड्रॉइडएक्स पर माइग्रेट करने के लिए समर्थन बनाया है।

<पी> एक स्टैंडअलोन प्रोजेक्ट के रूप में अपने फ़्लटर एप्लिकेशन के एंड्रॉइड फ़ोल्डर को खोलकर शुरुआत करें <पी> रिफैक्टर पर क्लिक करें → AndroidX पर माइग्रेट करें:

<पी> फ़्लटर ट्यूटोरियल:अपने ऐप को नवीनतम V2 Android एंबेडिंग पर माइग्रेट करें AndroidX पर माइग्रेट करने के लिए ड्रॉपडाउन मेनू <पी> फिर आपको अपने प्रोजेक्ट की एक प्रति सहेजने के लिए कहा जाएगा और उसके बाद, माइग्रेशन प्रक्रिया होगी।

त्रुटियाँ जो आपको दिखाई दे सकती हैं

<पी> इस माइग्रेशन प्रक्रिया के दौरान, आपको अपना एप्लिकेशन बनाते समय कई त्रुटियों का सामना करना पड़ सकता है। सबसे प्रमुख हैं:

  • परिवर्तनीय Windows वातावरण चर मानचित्र प्राप्त करने में असमर्थ
  • cvc-complex-type.2.4.a:तत्व 'बेस-एक्सटेंशन' से शुरू होने वाली अमान्य सामग्री पाई गई। '{layoutlib}' में से एक अपेक्षित है
  • चेतावनी:यह संस्करण केवल 2 तक के एसडीके एक्सएमएल संस्करणों को समझता है लेकिन संस्करण 3 की एक एसडीके एक्सएमएल फ़ाइल सामने आई थी। ऐसा तब हो सकता है जब आप एंड्रॉइड स्टूडियो के संस्करणों और कमांड-लाइन टूल का उपयोग करते हैं जो अलग-अलग समय पर जारी किए गए थे
<पी> पहली दो त्रुटियाँ एक-दूसरे से संबंधित हैं और दोनों एक ही मूल कारण से उत्पन्न होती हैं। ऐसा इसलिए है क्योंकि आपका प्रोजेक्ट पुराने ग्रैडल संस्करण के साथ स्थापित किया गया था और इसे अपग्रेड करने की आवश्यकता है। <पी> ऐसा करने के लिए, इन चरणों का पालन करें:

  1. अपने फ़्लटर एप्लिकेशन में एंड्रॉइड फ़ोल्डर को एक स्टैंडअलोन प्रोजेक्ट के रूप में खोलें
  2. फ़ाइल → प्रोजेक्ट संरचना पर क्लिक करें:
<पी> फ़्लटर ट्यूटोरियल:अपने ऐप को नवीनतम V2 Android एंबेडिंग पर माइग्रेट करें प्रोजेक्ट संरचना का चयन करने के लिए ड्रॉपडाउन मेनू
  1. ग्रैडल संस्करण को किसी नवीनतम संस्करण में बदलें और जो आपके द्वारा उपयोग किए जा रहे वर्तमान एंड्रॉइड स्टूडियो संस्करण से मेल खाता हो
<पी> फ़्लटर ट्यूटोरियल:अपने ऐप को नवीनतम V2 Android एंबेडिंग पर माइग्रेट करें एजीपी और ग्रैडल सेटिंग स्क्रीन <पी> ऐसा करने के लिए आप टूल्स →एजीपी अपग्रेड असिस्टेंट पर जाकर एजीपी अपग्रेड असिस्टेंट का भी उपयोग कर सकते हैं: <पी> फ़्लटर ट्यूटोरियल:अपने ऐप को नवीनतम V2 Android एंबेडिंग पर माइग्रेट करें एजीपी अपग्रेड असिस्टेंट का उपयोग करके एजीपी को अपग्रेड करने के लिए ड्रॉपडाउन मेनू <पी> तीसरी समस्या, जो एक चेतावनी है, एंड्रॉइड एसडीके टूल्स के पुराने संस्करण के कारण हो सकती है। यह कैसे करना है यह जानने के लिए, आप यहां जा सकते हैं।

<पी> आपका प्रोजेक्ट अब पूरी तरह से माइग्रेट, संकलित और सुचारू रूप से चलना चाहिए। <पी> यदि आप मेरे द्वारा लिखे गए अन्य लेख पढ़ना चाहते हैं, तो आप उन्हें यहां देख सकते हैं:

<पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. विंडोज सॉफ्टवेयर चलाने के लिए उबंटू पर वाइन कैसे स्थापित करें विंडोज सॉफ्टवेयर चलाने के लिए उबंटू पर वाइन कैसे स्थापित करें

    जब विंडोज उपयोगकर्ता लिनक्स का उपयोग करना शुरू करते हैं, तो उनके सामने सबसे बड़ी समस्या कुछ सॉफ्टवेयर की अनुपलब्धता होती है। लेकिन वाइन जैसी संगतता परत की मदद से, आप आसानी से लिनक्स पर विंडोज़ अनुप्रयोगों का उपयोग कर सकते हैं। इस लेख में, हम इस बारे में बात करने जा रहे हैं कि वाइन क्या है और आप इसे

  1. अकामाई नेट सत्र क्लाइंट क्या है? क्या मुझे इसे हटा देना चाहिए? अकामाई नेट सत्र क्लाइंट क्या है? क्या मुझे इसे हटा देना चाहिए?

    जब आप सॉफ़्टवेयर या इंटरनेट से बड़े एप्लिकेशन को डाउनलोड करने का प्रयास करते हैं, तो Akamai NetSession Client की भूमिका खेलने के लिए आता है। क्लाइंट आपके पीसी पर पहले से इंस्टॉल आता है या आपके द्वारा इंस्टॉल किए जा रहे प्रोग्राम के साथ बंडल में आता है, आपके डाउनलोड की गति को बढ़ाने का दावा करता है,

  1. फ़ाइल एक्सप्लोरर के व्यवस्थापकीय विशेषाधिकारों के साथ चलने पर यह ऐप नहीं खुल सकता फ़ाइल एक्सप्लोरर के व्यवस्थापकीय विशेषाधिकारों के साथ चलने पर यह ऐप नहीं खुल सकता

    एक और अजीब त्रुटि संदेश मुझे तब प्राप्त हुआ जब मैं एक विंडोज़ स्टोर ऐप खोलने के लिए गया - यह ऐप तब नहीं खुल सकता जब फ़ाइल एक्सप्लोरर व्यवस्थापकीय विशेषाधिकारों के साथ चल रहा हो। फ़ाइल एक्सप्लोरर को सामान्य रूप से पुनरारंभ करें और पुनः प्रयास करें . अब मैंने जानबूझकर फ़ाइल एक्सप्लोरर को व्यवस्थापक के