برنامه نویسی

چگونه می توان MissedPlugineXception را با Geolocator در Flutter رفع کرد؟

اگر از افزونه Geolocator در پروژه Flutter خود استفاده می کنید تا مکان فعلی کاربر را بازیابی کنید و با خطایی روبرو شوید “استثناء نامعلوم: MissionPlugineXception (هیچ پیاده سازی برای روش getCurrentPosition در کانال flutter.baseflow.com/geolocator) وجود ندارد ، شما تنها نیستید. این مسئله ناامیدکننده به دلایل مختلف می تواند بوجود بیاید ، همه به چگونگی ادغام و ثبت پلاگین های Flutter ، به ویژه هنگام هدف قرار دادن هر دو محیط Android و iOS مرتبط است. در این مقاله ، ما بررسی خواهیم کرد که چرا این خطا رخ می دهد و یک راهنمای جامع در مورد چگونگی رفع آن ارائه می دهیم.

درک مفقود شده

در MissingPluginException غالباً نشان می دهد که چارچوب Flutter نمی تواند با قسمت بومی افزونه ای که اضافه کرده اید ارتباط برقرار کند. این می تواند به دلایل مختلف اتفاق بیفتد:

  1. تنظیم افزونه نادرست: اگر این افزونه به اندازه کافی به پروژه شما اضافه نشده باشد ، Flutter قادر به یافتن آن نخواهد بود.
  2. کد خاص سیستم عامل فراخوانی نشده است: بعضی اوقات ، کد بومی روی سکو که پشتیبانی نمی شود یا به درستی خوانده نمی شود ، مقیاس می شود.
  3. مشکلات بارگیری مجدد: تغییرات ایجاد شده در حالی که برنامه در حال اجرا است ، گاهی اوقات می تواند چارچوب Flutter را اشتباه بگیرد.
  4. استفاده نادرست کانال/نسخه: اطمینان حاصل کنید که در یک کانال و نسخه Flutter سازگار هستید.

راهنمای گام به گام برای حل مسئله

بیایید به مراحل وضوح برای پرداختن به MissingPluginException هنگام استفاده از افزونه Geolocator.

مرحله 1: وابستگی های خود را بررسی کنید

اطمینان حاصل کنید که افزونه Geolocator را به درستی اضافه کرده اید pubspec.yaml پرونده بررسی کنید تا نسخه با نسخه Flutter شما سازگار باشد:

dependencies:
  flutter:
    sdk: flutter
  geolocator: ^8.0.0 # Check for the latest version

پس از اصلاح pubspec.yaml، حتماً اجرا کنید:

flutter pub get

مرحله 2: تنظیمات Android را پیکربندی کنید

اطمینان حاصل کنید که تنظیمات لازم را در پروژه Android خود دارید. مجوزهای خود را اضافه کنید AndroidManifest.xml واقع در android/app/src/main/AndroidManifest.xml:


    
    
    
        
    

مرحله 3: تنظیمات iOS را پیکربندی کنید

برای iOS ، اطمینان حاصل کنید که مجوزهای مکان لازم را در خود دارید Info.plist پرونده واقع در ios/Runner/Info.plist:

NSLocationWhenInUseUsageDescription
We need your location to show your whereabouts
NSLocationAlwaysAndWhenInUseUsageDescription
We need your location to provide location services

مرحله 4: ساخت را تمیز کنید

بعضی اوقات ، آثار باستانی باقیمانده می تواند مانع ارتباط بین فلوتر و افزونه شود. برای تمیز کردن پروژه خود ، اجرا کنید:

flutter clean

پس از تمیز کردن ، درخواست خود را دوباره با:

flutter run

مرحله 5: با استفاده از دستگاه فیزیکی تست کنید

همیشه اطمینان حاصل کنید که خدمات موقعیت مکانی را بر روی یک دستگاه فیزیکی به جای شبیه سازها آزمایش می کنید ، زیرا برخی از ویژگی ها در شبیه سازها محدود هستند.

کد مثال برای به دست آوردن موقعیت فعلی

در اینجا کمی کد به روز شده برای کمک به شما در بازیابی موثر موقعیت فعلی با استفاده از Geolocator وجود دارد. حتماً تماس مکان خود را در یک بلوک آزمایشی بسته بندی کنید تا استثنائات را با لطف انجام دهید:

import 'package:geolocator/geolocator.dart';

Future getCurrentLocation() async {
  try {
    Position position = await Geolocator.getCurrentPosition(
        desiredAccuracy: LocationAccuracy.high,
    );
    print('Current Location: \nLatitude: ${position.latitude}, Longitude: ${position.longitude}');
  } catch (e) {
    print('Error: $e');
  }
}

سوالات متداول

1. چرا MissingPluginException رخ می دهد؟
این استثناء زمانی اتفاق می افتد که فلوتر نتواند ادغام افزونه را پیدا کند. این می تواند به دلیل نداشتن تنظیمات صحیح در تنظیمات پروژه شما باشد.

2. آیا لازم است مجوزهای موقعیت مکانی را در Android و iOS اعلام کنم؟
بله ، هر پلتفرم به مجوزهای صریح ذکر شده در پرونده های لیست مانیفست یا املاک خود نیاز دارد.

3. چگونه می توانم نسخه های افزونه صحیح را بررسی کنم؟
همیشه می توانید صفحه رسمی افزونه Geolocator را برای آخرین نسخه پایدار بررسی کرده و خود را به روز کنید pubspec.yaml بر این اساس

با دنبال کردن این مراحل با دقت ، باید بتوانید حل کنید MissingPluginException همراه با افزونه Geolocator در برنامه Flutter. این که آیا شما Android یا iOS را هدف قرار می دهید ، پیکربندی صحیح و اطمینان از تعامل مناسب با کد بومی در استفاده موفقیت آمیز از افزونه ها بسیار مهم است. برنامه نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا