Метод работает на эмуляторе, но нет на устройстве Microsoft Surface? - PullRequest
1 голос
/ 15 февраля 2011

У меня есть следующий код. Метод StartRecord выдает ошибку на Microsoft Surface Unit. Но когда я тестирую его на эмуляторе, все отлично работает. Любые намеки, как

1) найти исключение, которое выбрасывается в Microsoft Surface Unit?

2) найти ошибку в коде? какие-либо предположения?

        private void StartRecord(object sender, ContactEventArgs e)
        {
            isRecording = true;
            StartButton.IsEnabled = false;
            recordTimer = new Timer(10);
            recordTimer.Elapsed += new ElapsedEventHandler(recordTimer_Elapsed);
            PlaybackRoot.Visibility = System.Windows.Visibility.Collapsed;
            EllapsedRecord.Visibility = System.Windows.Visibility.Visible;
            InputLevel.Visibility = System.Windows.Visibility.Visible;
            long time = DateTime.Now.Ticks;
            String fileName = Convert.ToString(time) + ".wav";
            Console.WriteLine(fileName);
            startTime = DateTime.UtcNow;
            recordTimer.Start();
            record = new AudioRecording(fileName);
            record.getSampleAggregator().MaximumCalculated += new EventHandler<MaxSampleEventArgs>(AudioControl_MaximumCalculated);
            record.start();
        }

Ответы [ 2 ]

4 голосов
/ 15 февраля 2011

Я не знаком с Surface, но если у вас нет каких-либо инструментов отладки, я бы начал с оборачивания всего в блок try, чтобы можно было получить сообщение об исключении и callstack:

try
{
    //Method code here
}
catch (Exception ex)
{
    //Output the exeption messages here, use a recursive method to get those of inner exceptions as well.
    //Example method to get the messages as string:
    //
    //public static string ExceptionToString(Exception ex)
    //{
    //  if (ex == null) return "";
    //  else return " [" + ex.Message + ExceptionToString(ex.InnerException) + "]";
    //}
    //
    //Also get the StackTrace (ex.StackTrace) and print it using whatever means available.
}

Это должно позволить вам еще более сузить проблему до конкретной операции.

1 голос
/ 15 февраля 2011

Переведите Surface в «режим администратора» и запустите приложение оттуда. Также убедитесь, что вы используете отладочную сборку своего приложения, а не релиз.

...