web-dev-qa-db-ja.com

Flutter SDK 1.2.1の現在の場所を取得する方法

Flutterを使用してAndroidデバイス上の現在の場所を取得する方法を教えてください。私は両方を試してみました 場所 および Geolocator プラグインGeolocator 3.0.0にデバッグ時にこのエラーが表示されます。

_Launching lib\main.Dart on Android SDK built for x86 in debug mode...
_

失敗:ビルドが例外で失敗しました。

  • 何が問題になったのか:タスクの実行に失敗しました ':app:predebugbuild'。[。____]。

    Android依存関係 'android.arch.lifecycle:runtime'には、コンパイル(1.0.0)とランタイム(1.1.0)クラスパスに異なるバージョンがあります。依存関係によって手動で同じバージョンを設定する必要があります

Location 2.0.0はデバッグ時にエラーをスローします。 GeoLocationという名前の別のプラグインがありますが、Dart 2.0と互換性がありません。そのような状況では、場所(経度と緯度)を手に入れることができますか?あらゆる助けが高く評価されるでしょう。

3
Mateen Kiani

今すぐあなたが解決策を見つけたかもしれませんが、それでも私はこれを追加しているかもしれません。

現在地を取得するにはジロケーターを使用してください

Pubsec.Yaml.

  geolocator: '^2.0.1'
 _

あなたのダーツファイルに

import 'package:flutter/material.Dart';
import 'package:geolocator/geolocator.Dart';

void main() => runApp(MapScreen());

class MapScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Map",
      home: MapActivity(),
    );
  }
}

class MapActivity extends StatefulWidget {
  @override
  _MapActivityState createState() => _MapActivityState();
}

class _MapActivityState extends State<MapActivity> {
  LatLng _center ;
  Position currentLocation;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    getUserLocation();
  }

 Future<Position> locateUser() async {
    return Geolocator()
        .getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
  }

  getUserLocation() async {
    currentLocation = await locateUser();
    setState(() {
      _center = LatLng(currentLocation.latitude, currentLocation.longitude);
    });
    print('center $_center');
  }
}
 _

お役に立てれば

1
primo