Xamarin.FormsのGetting Startedの通りに実行していたら例外が発生しました。

概要

Xamarin.Formsのガイドにある、Getting Startedの「Xamarin.Forms Multiscreen Quickstart」通りにプログラムを書いて、Android端末でデバッグしていたら、下記のような例外が発生しました。

normal_ea71fbeb-df7d-49a8-b5fd-d84e1b1e8e10.png

System.InvalidOperationException: PushAsync is not supported globally on Android, please use a NavigationPage.

これによると、画面遷移に利用しているPushAsyncが使えないようです。

解決方法

PushAsyncが使えないので、代わりに、PushModalAsyncを使います。

プログラムはこのようになります。

using System;
using Xamarin.Forms;

namespace Phoneword
{
    public partial class MainPage : ContentPage
    {
        ...
        void OnCallHistory(object sender, EventArgs e)
        {
            Navigation.PushModalAsync (new CallHistoryPage ());
        }
    }
}

これで、エラーが出なくなりました。