Почему я получаю исключение Null Reference Exception при назначении методов делегата обработчику событий Button.OnClick?

Этот вопрос отличается от отмеченного дубликата, поскольку он не содержит подробностей об этом конкретном примере делегатов.

Я хотел бы аккуратно добавить метод делегата к моей кнопке в событиях щелчка. Это делается с помощью C# в Xamarin. При запуске приложения в моем эмуляторе я получаю следующее необработанное исключение.

System.NullReferenceException: Object reference not set to an instance of an object.

Ниже приведен код, который я использую

using System;
using Android.App;
using Android.Widget;
using Android.OS;

namespace AudioTour
{
    [Activity(Label = "AudioTour", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Find Buttons
            Button startButton = FindViewById<Button>(Resource.Id.startAudio);
            Button stopButton = FindViewById<Button>(Resource.Id.stopAudio);
            // Set Screen
            SetContentView (Resource.Layout.Main);
            // Assign Delegate Methods to Buttons
            startButton.Click += StartAudio;
            stopButton.Click += StopAudio;  
        }
        // Start Audio Method
        void StartAudio(object sender, EventArgs ea)
        {
            // Do Code
            Console.WriteLine("Starting Audio");
        }
        // Stop Audio Method
        void StopAudio(object sender, EventArgs ea)
        {
            // Do Code
            Console.WriteLine("Stopping Audio");
        }
    }
}

Спасибо


person Jim    schedule 10.08.2017    source источник
comment
В какой строке кода вы получаете исключение NullReferenceException?   -  person Dennis Larisch    schedule 10.08.2017
comment
StartButton.Click   -  person Jim    schedule 10.08.2017
comment
Если вы отлаживаете его, правильно ли заполнены startButton и stopButton? Похоже, что один из них нулевой. Или на какой строке вы получили эту ошибку?   -  person M. Pipal    schedule 10.08.2017
comment
Затем функция FindViewById<Button>(Resource.Id.startAudio); возвращает null   -  person Dennis Larisch    schedule 10.08.2017
comment
пожалуйста, сделайте SetContentView (Resource.Layout.Main); заявление перед кнопкой поиска.   -  person Ziyad Godil    schedule 10.08.2017
comment
Спасибо вам всем. Вы помогли мне понять, что на самом деле не делегат был неопределенным, а фактически кнопка была нулевой.   -  person Jim    schedule 10.08.2017