Flutter-geolocator: プラグインの一部の関数の呼び出し中にMissingPluginExceptionが発生しました

作成日 2020年04月01日  ·  3コメント  ·  ソース: Baseflow/flutter-geolocator

🐛バグレポート


getCurrentPosition関数の呼び出し中にMissingPluginExceptionが発生すると、この関数placemarkFromCoordinatesでもエラーが発生します。

[エラー:flutter / lib / ui / ui_dart_state.cc (157)]未処理の例外:MissingPluginException(チャネルcom.baseflow.flutter / location_permissionsのメソッドcheckPermissionStatusの実装が見つかりません)
E / flutter(32250):#0 MethodChannel.invokeMethod(package:flutter / src / services / platform_channel.dart:319:7)
E /フラッター(32250):
E /フラッター(32250):#1 LocationPermissions.checkPermissionStatus(package:location_permissions / src / location_permissions.dart:38:30)
E /フラッター(32250):#2 Geolocator._getLocationPermission(package:geolocator / geolocator.dart:201:10)
E /フラッター(32250):#3 Geolocator.getCurrentPosition(package:geolocator / geolocator.dart:101:47)
E /フラッター(32250):#4 _SearchPageState.callback(package:gramstands / pages / search_page.dart:181:18)
E /フラッター(32250):#5callbackDispatcher。(package:geofence / callback_dispatcher.dart:25:13)
E / flutter(32250):#6 MethodChannel._handleAsMethodCall(package:flutter / src / services / platform_channel.dart:402:55)
E /フラッター(32250):#7MethodChannel.setMethodCallHandler。(package:flutter / src / services / platform_channel.dart:370:54)
E / flutter(32250):#8 _DefaultBinaryMessenger.handlePlatformMessage(package:flutter / src / services / binding.dart:200:33)
E /フラッター(32250):#9_invoke3。(dart:ui / hooks.dart:303:15)
E /フラッター(32250):#10 _rootRun(dart:async / zone.dart:1126:13)
E /フラッター(32250):#11 _CustomZone.run(dart:async / zone.dart:1023:19)
E /フラッター(32250):#12 _CustomZone.runGuarded(dart:async / zone.dart:925:7)
E /フラッター(32250):#13 _invoke3(dart:ui / hooks.dart:302:10)
E / flutter(32250):#14 _dispatchPlatformMessage(dart:ui / hooks.dart:162:5)

予想される行動

パーミッションを自動的にチェックし、そのための機能を取得します。

複製手順

静的コールバックメソッドで以下の関数を呼び出すだけです。
static void callback(Location location、GeofenceEvent geoEvent)async {
Geolocator()。getCurrentPosition()。then((position){
print( "コールバックの現在の位置=> $ {position.toJson()}");
});
}

構成

ドクターサマリー(すべての詳細を表示するには、フラッタードクター-vを実行します):
[√]フラッター(チャネル安定版、v1.12.13 + hotfix.8、Microsoft Windows [バージョン10.0.18362.720]、ロケールen-IN)

[√] Androidツールチェーン-Androidデバイス用に開発(Android SDKバージョン29.0.0)
[√] Android Studio(バージョン3.6)
[√] VSコード(バージョン1.43.2)
[√]接続されたデバイス(1つ利用可能)

•問題は見つかりませんでした。

**バージョン:5.3.0

プラットホーム:

  • [まだチェックされていません]:iphone:iOS
  • [X]:robot:Android

全てのコメント3件

この問題は、フラッターの静的メソッドの書き込み関数が原因で発生します。 静的メソッドの外では機能します。 ありがとう。

https://stackoverflow.com/a/51244003/7669884

🐛バグレポート

getCurrentPosition関数の呼び出し中にMissingPluginExceptionが発生すると、この関数placemarkFromCoordinatesでもエラーが発生します。

[エラー:flutter / lib / ui / ui_dart_state.cc(157)]未処理の例外:MissingPluginException(チャネルcom.baseflow.flutter / location_permissionsのメソッドcheckPermissionStatusの実装が見つかりません)
E / flutter(32250):#0 MethodChannel.invokeMethod(package:flutter / src / services / platform_channel.dart:319:7)
E /フラッター(32250):
E /フラッター(32250):#1 LocationPermissions.checkPermissionStatus(package:location_permissions / src / location_permissions.dart:38:30)
E /フラッター(32250):#2 Geolocator._getLocationPermission(package:geolocator / geolocator.dart:201:10)
E /フラッター(32250):#3 Geolocator.getCurrentPosition(package:geolocator / geolocator.dart:101:47)
E /フラッター(32250):#4 _SearchPageState.callback(package:gramstands / pages / search_page.dart:181:18)
E /フラッター(32250):#5callbackDispatcher。 (package:geofence / callback_dispatcher.dart:25:13)
E / flutter(32250):#6 MethodChannel._handleAsMethodCall(package:flutter / src / services / platform_channel.dart:402:55)
E /フラッター(32250):#7MethodChannel.setMethodCallHandler。 (package:flutter / src / services / platform_channel.dart:370:54)
E / flutter(32250):#8 _DefaultBinaryMessenger.handlePlatformMessage(package:flutter / src / services / binding.dart:200:33)
E /フラッター(32250):#9_invoke3。 (dart:ui / hooks.dart:303:15)
E /フラッター(32250):#10 _rootRun(dart:async / zone.dart:1126:13)
E /フラッター(32250):#11 _CustomZone.run(dart:async / zone.dart:1023:19)
E /フラッター(32250):#12 _CustomZone.runGuarded(dart:async / zone.dart:925:7)
E /フラッター(32250):#13 _invoke3(dart:ui / hooks.dart:302:10)
E / flutter(32250):#14 _dispatchPlatformMessage(dart:ui / hooks.dart:162:5)

予想される行動

パーミッションを自動的にチェックし、そのための機能を取得します。

複製手順

静的コールバックメソッドで以下の関数を呼び出すだけです。
static void callback(Location location、GeofenceEvent geoEvent)async {
Geolocator()。getCurrentPosition()。then((position){
print( "コールバックの現在の位置=> $ {position.toJson()}");
});
}

構成

ドクターサマリー(すべての詳細を表示するには、フラッタードクター-vを実行します):
[√]フラッター(チャネル安定版、v1.12.13 + hotfix.8、Microsoft Windows [バージョン10.0.18362.720]、ロケールen-IN)

[√] Androidツールチェーン-Androidデバイス用に開発(Android SDKバージョン29.0.0)
[√] Android Studio(バージョン3.6)
[√] VSコード(バージョン1.43.2)
[√]接続されたデバイス(1つ利用可能)

•問題は見つかりませんでした。

**バージョン:5.3.0

プラットホーム:

  • [まだチェックされていません]📱iOS
  • [x]🤖Android

コマンドプロンプトからアプリケーションを実行します。.flutterrun

このページは役に立ちましたか?
0 / 5 - 0 評価