Trying to find out the current location of the device, it is showing "MissingPluginException"

2,198

Is your project running on Android X? Try doing so.

Here is another helpful link: https://github.com/flutter/flutter/issues/14137

Share:
2,198
STBox
Author by

STBox

Updated on December 20, 2022

Comments

  • STBox
    STBox over 1 year

    I have a simple piece of code, main.dart. Any kind of help would be highly appreciated. I am using

    geolocator: ^5.1.3

    I am simply trying to get the location of the user. But it is showing:

    MissingPluginException(No implementation found for method checkPermissionStatus on channel com.baseflow.flutter/location_permissions)

    A non-null String must be provided to a Text widget. 'package:flutter/src/widgets/text.dart': Failed assertion: line 285 pos 10: 'data != null'

    I have added these lines to my AndroidManifest as well:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    

    My main.dart code is:

    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:geolocator/geolocator.dart';
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: HomePage(),
        );
      }
    }
    
    class HomePage extends StatefulWidget {
      @override
      _HomePageState createState() => _HomePageState();
    }
    
    class _HomePageState extends State<HomePage> {
      final Geolocator geolocator = Geolocator()..forceAndroidLocationManager;
    
      Position _currentPosition;
      String _currentAddress;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text("Location"),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                if (_currentPosition != null) Text(_currentAddress),
                FlatButton(
                  child: Text("Get location"),
                  onPressed: () {
                    _getCurrentLocation();
                  },
                ),
              ],
            ),
          ),
        );
      }
    
      _getCurrentLocation() {
        geolocator
            .getCurrentPosition(desiredAccuracy: LocationAccuracy.best)
            .then((Position position) {
          setState(() {
            _currentPosition = position;
          });
    
          _getAddressFromLatLng();
        }).catchError((e) {
          print(e);
        });
      }
    
      _getAddressFromLatLng() async {
        try {
          List<Placemark> p = await geolocator.placemarkFromCoordinates(
              _currentPosition.latitude, _currentPosition.longitude);
    
          Placemark place = p[0];
    
          setState(() {
            _currentAddress =
            "${place.locality}, ${place.postalCode}, ${place.country}";
          });
        } catch (e) {
          print(e);
        }
      }
    }
    
    • Code Poet
      Code Poet almost 4 years
      Did you run Flutter Clean?