Xamarin表示Android MethodAccessException

时间:2017-12-14 11:30:31

标签: c# android xamarin xamarin.forms xamarin.android

自升级到15.5.1以来,我的Xamarin项目似乎不再适用了。

加载页面时,出现此错误:

  

System.MethodAccessException:方法Xamarin.Forms.View:.ctor()'从方法MyApp.MyPage.InitializeComponent()'

无法访问

然而,这个页面的构建方式与我正在工作的其他页面完全相同,我不知道从哪里开始搜索。这有什么想法来自哪里?我使用Xamarin.Forms插件版本2.5.0.121934。

编辑:这是出现异常的自动生成文件的内容:

public partial class MyPage : global::Xamarin.Forms.ContentPage {
         [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
        private void InitializeComponent() {
            global::Xamarin.Forms.Xaml.Extensions.LoadFromXaml(this, typeof(MyPage));
        }
    }

编辑2:

namespace MyApp
{
    public partial class MyPage : ContentPage
    {
        MyPageVM viewModel;
        public PNewWeighing(String information)
        {
            this.InitializeComponent();

            viewModel = new MyPageVM();
            viewModel.information = information;
            BindingContext = viewModel;
        }

        protected override bool OnBackButtonPressed()
        {
            viewModel.OnNavigateCancelCommand();
            return true;
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="MyApp.MyPage"
    x:Name="MyPage"
    NavigationPage.HasBackButton="False"
    NavigationPage.HasNavigationBar="False">
<ContentPage.Padding>
    <OnPlatform 
            x:TypeArguments="Thickness"
            iOS="20, 40, 20, 20"
            Android="20, 20, 20, 20"
            WinPhone="20, 20, 20, 20" />
</ContentPage.Padding>
<ContentPage.Content>
    <ScrollView>
    <Grid
        HorizontalOptions="FillAndExpand"
        VerticalOptions="FillAndExpand"
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>

        <Label
            Grid.Row="0"
            Grid.ColumnSpan="2"
            Text="{Binding Text}"
            FontAttributes="Bold" />

        <!-- Placeholder -->
        <View
            Grid.Row="1"
            Grid.ColumnSpan="2" />

        <!-- General controls -->

    </Grid>
    </ScrollView>
</ContentPage.Content>

2 个答案:

答案 0 :(得分:2)

我不确定但您可以尝试在页面构造函数中使用this.InitializeComponent()吗?

答案 1 :(得分:2)

我遇到了同样的异常,但由于在页面中包含了自定义视图,因此自定义视图构造函数public为我解决了这个问题