我的应用程序在Visual Studio中的Nougat模拟器中运行正常,但是当我将其加载到手机上时无法启动和崩溃。设备日志显示XamlParseException找不到方法btnIn1_Click。如果我在我的代码隐藏中注释掉btnIn1,除了btnIn2_Click之外我给出了同样的错误。
我已经搜索了SO,以了解我的Xamarin应用中发生了什么。 我最接近的是:Xmarin.Forms.Xaml.XamlParseException no method found
该问题中的一个答案提到光标在XAML中的click事件并按F12。当我这样做时,我会收到消息"无法导航到定义"对我说这个事件没有得到承认。
答案中的解决方案说清洁和重建......我已经做了很多次没有运气。
因此,如果有人可以查看我的代码并且可能找出我失踪的内容。 这是我的XAML。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:VideoSwitcher"
x:Class="VideoSwitcher.MainPage"
Padding="0,20,0,0">
<Grid BackgroundColor="White"
Padding="5"
ColumnSpacing="3"
RowSpacing="3">
<Grid.RowDefinitions>
<RowDefinition Height=".5*"/>
<RowDefinition Height="*"/>
<RowDefinition Height=".5*"/>
<RowDefinition Height="*"/>
<RowDefinition Height=".5*"/>
<RowDefinition Height="*"/>
<RowDefinition Height=".5*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0"
Grid.ColumnSpan="2"
Text="System Video Switcher"
TextColor="Black"/>
<Button Grid.Row="1"
Grid.Column="0"
x:Name="btnIn1"
Text="Input 1"
BackgroundColor="Firebrick"
TextColor="White"
Clicked="btnIn1_Click"/>
<Button Grid.Row="1"
Grid.Column="1"
x:Name="btnIn2"
Text="Input 2"
BackgroundColor="Firebrick"
TextColor="White"
Clicked="btnIn2_Click"/>
<Button Grid.Row="3"
Grid.Column="0"
x:Name="btnOut1"
Text="Output 1"
BackgroundColor="Firebrick"
TextColor="White"
Clicked="btnOut1_Click"/>
<Button Grid.Row="3"
Grid.Column="1"
x:Name="btnOut2"
Text="Output 2"
BackgroundColor="Firebrick"
TextColor="White"
Clicked="btnOut2_Click"/>
<Button Grid.Row="5"
Grid.ColumnSpan="2"
x:Name="btnTake"
Text="Take"
BackgroundColor="Firebrick"
TextColor="White"
Clicked="btnTake_Click"/>
<Label Grid.Row="6"
Grid.ColumnSpan="2"
TextColor="White"
x:Name="lblStatus" />
</Grid>
</ContentPage>
这里是代码隐藏,正如我所看到的,我的事件已正确定义。
using System;
using Xamarin.Forms;
using Enkadia.Extron.Switchers;
namespace VideoSwitcher
{
public partial class MainPage : ContentPage
{
Switcher swt = new Switcher("192.168.2.50", "admin", "******");
private int Input { get; set; }
private int Output { get; set; }
public MainPage()
{
InitializeComponent();
if (swt.IsConnected != true)
{
lblStatus.Text = swt.ConnectionError;
}
}
void btnIn1_Click(object sender, EventArgs e)
{
Input = 1;
}
void btnIn2_Click(object sender, EventArgs e)
{
Input = 2;
}
void btnOut1_Click(object sender, EventArgs e)
{
Output = 1;
}
void btnOut2_Click(object sender, EventArgs e)
{
Output = 2;
}
void btnTake_Click(object sender, EventArgs e)
{
swt.RGBXPoint(Input, Output);
}
}
}
欢迎任何想法。
答案 0 :(得分:0)
您可以通过将iOS项目选项中的“链接器行为”更改为“仅链接框架SDK”来解决此问题。