Информация о системеApp не откажет во время отладки, но при запуске Обычно
- Windows 10 Technical Preview (сборка 9926)
- Visual Studio Community 2013
Попытка отладки на:- [AT & T] Lumia 635 (Windows 10 Технический просмотр для телефонов для сборки 9941 w/Lumia Cyan)
- [AT & T] Lumia 1520 (Windows Phone 8.1 с Lumia Denim и PFD)
- [разблокирована] СИН Win Jr (Windows Phone 8.1 с PFD)
- [Verizon] Lumia Icon (Windows Phone 8,1 с Lumia Denim и PFD)
Я пытаюсь получить услуги определения местоположения, работающих в моем приложении. Раньше у меня была ошибка Visual Studio. Это было ArgumentException
с сообщением «Use of undefined keyword value 1 for event TaskScheduled in async
». Googling не нашел никаких решений.
Вот код:
Geolocator Locator = new Geolocator();
Geoposition Position = await Locator.GetGeopositionAsync();
Geocoordinate Coordinate = Position.Coordinate;
Когда я мог бы получить ошибки быть выброшен, исключение было брошено на 2-й или 3-й линии в образце выше. я упростил исходный код, чтобы попытаться исправить это, но это оригинал:
Geolocator Locator = new Geolocator();
Geocoordinate Coordinate = (await Locator.GetGeopositionAsync()).Position.Coordinate;
Всего приложение работает при отладке, но падает практически мгновенно иначе.
Это универсальный проект Windows 8.1, ориентированный на проект телефона.
Заранее спасибо
EDIT: В соответствии с просьбой, вот полный метод:
private static bool CheckConnection()
{
ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile();
bool internet = connections != null && connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
return internet;
}
public static async Task<double> GetTemperature(bool Force)
{
if (CheckConnection() || Force)
{
Geolocator Locator = new Geolocator();
await Task.Yield(); //Error occurs here
Geoposition Position = await Locator.GetGeopositionAsync();
Geocoordinate Coordinate = Position.Coordinate;
HttpClient Client = new HttpClient();
double Temperature;
Uri u = new Uri(string.Format("http://api.worldweatheronline.com/free/v1/weather.ashx?q={0},{1}&format=xml&num_of_days=1&date=today&cc=yes&key={2}",
Coordinate.Point.Position.Latitude,
Coordinate.Point.Position.Longitude,
"API KEY"),
UriKind.Absolute);
string Raw = await Client.GetStringAsync(u);
XElement main = XElement.Parse(Raw), current_condition, temp_c;
current_condition = main.Element("current_condition");
temp_c = current_condition.Element("temp_C");
Temperature = Convert.ToDouble(temp_c.Value);
switch (Memory.TempUnit)
{
case 0:
Temperature = Convertions.Temperature.CelsiusToFahrenheit(Temperature);
break;
case 2:
Temperature = Convertions.Temperature.CelsiusToKelvin(Temperature);
break;
}
return Temperature;
}
else
{
throw new InvalidOperationException("Cannot connect to the weather server.");
}
}
EDIT 2: Я asked for help on Twitter и received a reply просить для репрограммного проекта. Я воссоздал основную часть оригинального приложения, но я не смог получить ошибку. Однако могут возникнуть ошибки so here's the project.
EDIT 3: Если это помогает вообще, вот детали исключение:
System.ArgumentException occurred
_HResult=-2147024809
_message=Use of undefined keyword value 1 for event TaskScheduled.
HResult=-2147024809
IsTransient=false
Message=Use of undefined keyword value 1 for event TaskScheduled.
Source=mscorlib
StackTrace:
at System.Diagnostics.Tracing.ManifestBuilder.GetKeywords(UInt64 keywords, String eventName)
InnerException:
Вы не одиноки, проверьте [это] (https://social.msdn.microsoft. com/Форумы/windowsapps/en-US/3e505e04-7f30-4313-aa47-275eaef333dd/systemargumentexception-use-of-undefined-keyword-value-1-for-event-taskscheduled-in-async? forum = wpdevelop) и [ это] (http://stackoverflow.com/questions/24747885/argumentexception-use-of-undefined-keyword-value-1-for-event-taskscheduled-in). В качестве обходного пути посмотрите, помогает ли это: «Месторасположение геодезиста = ожидание Task.Run (() => Locator.GetGeopositionAsync());' – Noseratio
@Noseratio Я пробовал все, что мог, в двух связанных вами потоках. Кроме того, я попробовал обходное решение, которое вы дали. Он по-прежнему работает безупречно во время отладки, но он все еще падает, не отлаживая. Спасибо за ваш ответ –
По-видимому, это ошибка WP/WRT, я бы сообщил об этом на http://connect.microsoft.com. Кстати, попробуйте также: 'waitait Task.Yeild(); Геокоординатная координата = (ждет Локатор.GetGeopositionAsync()). Position.Coordinate; 'Сбой после' Task.Yeild() 'или после' ожидания Locator.GetGeopositionAsync() '? – Noseratio