Я работаю над приложением Windows Phone 8.1. Я около месяца в проекте и почти не вижу проблем с тем, что я написал до сих пор.
Я решил провести некоторое тестирование в приложении, не запуская его через отладчик VS 2013. Теперь по какой-то причине приложение выходит из строя, прежде чем оно попадает на первый экран. Я не получаю никаких исключений или сообщений (я использую Raygun для регистрации ошибок).
Я использую async-методы на протяжении всего (некоторые async void, другие async Task), но все это работает при отладке.
Главное, что поможет, - получить какое-то сообщение об ошибке. Я был сокращен до комментирования разделов кода, но в конечном итоге это ни к чему не приводит, потому что кажется, что, когда я думаю, что нашел проблему, я снова попал в код.
В какой-то момент я обнаружил проблему с вызовом: ListView.UpdateLayout(). Я прокомментировал это, и приложение будет нормально работать без сбоев. Затем я не прокомментировал некоторый код дальше, и теперь он снова сбой.
Если кто-то знает способ получить исключения из телефона или если кто-то испытал этот вопрос раньше, любая помощь будет принята с благодарностью. Я могу предоставить любую дополнительную информацию, которая необходима.
UPDATE: Я думаю, что я сузил проблему до Sqlite.NET. Я использую Sqlite.Net для WinRT вместе с расширением SqliteNetExtensions. Конкретное утверждение
DataContext.Context.Connection.Table<Message>().Where(m => m.ChannelID == channelID && m.ChannelID.Contains("C")).ToList();
Если я прокомментирую это, приложение будет работать без проблем. Этот оператор LINQ максимально возвращает 100 записей. Я не думаю, что 100-разрядный оператор SELECT может привести к сбою приложения, но он кажется виновником. Любые идеи о том, как оптимизировать Sqlite.NET?
ОБНОВЛЕНИЕ 2: Наконец понял это! Это не был SQLite. Это был не мой код. Это был мой телефон. Я запускаю значок Nokia Lumia. Несколько недель назад я установил Rudy Huyn Lockscreen Beta. Это вызвало некоторые проблемы при его удалении, но это не было связано с моим приложением. Сегодня у меня был мой партнер по бизнесу, который установил мое приложение на своем телефоне, у него такой же модельный телефон. Приложение было примерно в 50 раз быстрее и не разбилось. Я восстановил свой телефон от factory и, вот и все, он работал отлично. Итак, про совет: НЕ УСТАНАВЛИВАЙТЕ БЛОКИРОВКУ БЕТКА РУДЫ ХУЙН!!!