【发布时间】:2018-11-27 03:32:54
【问题描述】:
我的 MainPage 上有一个按钮,可以导航到下一个视图。这在我的 Windows PC(Visual Studio 2017)上的模拟 android 设备(Android 8.1 加速 x86)上的调试构建中非常有用。
按钮从我的视图绑定到我的视图模型,如下所示:
<Button Text="Report error" Command="{Binding NewErrorCommand}" />
视图模型代码:
public Command NewErrorCommand
{
get
{
return _newErrorCommand ?? (_newErrorCommand = new Command(ExecuteNewErrorCommand, CanNewErrorCommand));
}
}
private bool CanNewErrorCommand(object arg)
{
return true;
}
private async void ExecuteNewErrorCommand(object obj)
{
try
{
// I'll get here in simulation/debug build but not in release build on device
await Application.Current.MainPage.DisplayAlert("Go", "Go", "Ok");
await _navigation.PushAsync(new TestView(), false);
}
catch (Exception exc)
{
await Application.Current.MainPage.DisplayAlert("Error", exc.Message, "Cancel");
}
}
我的整个应用程序在模拟器上运行得很好。如果我在我的真实物理设备上按下按钮,我会看到视觉反馈(按钮改变颜色),但什么也没有发生。
到目前为止我尝试了什么:
- 使用
DisplayAlert应用了一些 printf 调试(未命中,请参阅源代码) - 将蓝牙鼠标连接到我的 android 设备 (android 6.0) 以防鼠标点击和手指点击之间存在差异(仍然没有工作按钮)
您能帮助 Xamarin.Forms 初学者吗?
更新
我通过 USB 连接我的安卓手机进行调试。该按钮在调试模式下工作(正在中断点,打开新页面),但在发布版本中仍然不起作用。
根据要求设置链接器:
【问题讨论】:
-
能否附上链接器配置的屏幕截图?您可以在Android项目属性下找到构建部分
-
@nmilcoff:添加了发布版本的链接器设置
-
您能否尝试将链接部分更改为仅 SDK 程序集,而不是 SDK 和用户程序集?
-
@nmilcoff:是的,就是这样!如果我将链接器部分更改为“仅 SDK 程序集”,则发布版本运行良好。非常感谢您的帮助,我真的很感激。如果您将评论作为答案,我将接受它作为答案。如果您也能解释为什么会发生这种情况,那就更好了。
标签: xamarin xamarin.forms xamarin.android