2017-03-22 14 views
-1

私はちょうど私の現在の位置を私に与える小さなアプリケーションを開発しようとしています。だから私は自分のコードに入力したこのプラグインを見つけた。今、私はコンパイルするためのすべてを持っている - アプリは起動しますが、その後、警告が終了することはありません。クラッシュはありません。 Xamarinでさえ、クラッシュの兆候は見られません。みんな助けてくれますか?私は何も試していないし、アイ・アイ・アウト・アイデアはすべて...;) もう一度ありがとう!Xamarin - Geolocationは機能しません...しかし、なぜ

protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      SetContentView(Resource.Layout.Main); 

      //Initialize buttons: 

      Button StartButton = FindViewById<Button>(Resource.Id.startbutton); 
      TextView txtTestGps = FindViewById<TextView>(Resource.Id.GpsTest); 

      ShowGpsCoordinates(StartButton, txtTestGps); 
     } 

     private void ShowGpsCoordinates(Button StartButton, TextView txtTestGps) 
     { 
      Task<double> xy = GiveGpsLocation(); 
      double xyOut = xy.Result; 

      StartButton.Click += (sender, e) => 
      { 
       txtTestGps.Text = xyOut.ToString(); 
      }; 
     } 

     private async Task<double> GiveGpsLocation() 
     { 
      double DoubleWithCoordinates = 0.0; 

      var locator = CrossGeolocator.Current; 
      locator.DesiredAccuracy = 50; 

      var position = await locator.GetPositionAsync(10000); 

      // Console.WriteLine("Position Status: {0}", position.Timestamp); 
      // Console.WriteLine("Position Latitude: {0}", position.Latitude); 
      // Console.WriteLine("Position Longitude: {0}", position.Longitude); 

      DoubleWithCoordinates = position.Latitude; 

      return DoubleWithCoordinates; 
     } 

    } 
+0

あなたがこの上で実行されているどのようなプラットフォームを? Androidの場合は、権限の問題かもしれません。 – Screech129

+0

はい、それはAndroidです... gpsの両方の権限を追加しました.... – user7285912

+0

ここですべてのメモを読みましたか:https://github.com/jamesmontemagno/GeolocatorPlugin#android – Jason

答えて

0

あなたは非同期メソッドへのすべての呼び出しを待っていないので、例外は、クラッシュの原因を隠して、飲み込ま取得される可能性があります。

おそらく、次のことを試してみて、あなたはあなたに何か伝え例外得ることができるかどうかを参照してください。

protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      SetContentView(Resource.Layout.Main); 

      //Initialize buttons: 

      Button StartButton = FindViewById<Button>(Resource.Id.startbutton); 
      TextView txtTestGps = FindViewById<TextView>(Resource.Id.GpsTest); 

      Task.Run(async() => { 
       await ShowGpsCoordinates(StartButton, txtTestGps); 
      } 
     } 

     private async Task ShowGpsCoordinates(Button StartButton, TextView txtTestGps) 
     { 
      double xyOut = await GiveGpsLocation(); 


      StartButton.Click += (sender, e) => 
      { 
       txtTestGps.Text = xyOut.ToString(); 
      }; 
     } 

     private async Task<double> GiveGpsLocation() 
     { 
      double DoubleWithCoordinates = 0.0; 

      var locator = CrossGeolocator.Current; 
      locator.DesiredAccuracy = 50; 

      var position = await locator.GetPositionAsync(10000); 

      // Console.WriteLine("Position Status: {0}", position.Timestamp); 
      // Console.WriteLine("Position Latitude: {0}", position.Latitude); 
      // Console.WriteLine("Position Longitude: {0}", position.Longitude); 

      DoubleWithCoordinates = position.Latitude; 

      return DoubleWithCoordinates; 
     } 

    } 
関連する問題