Xamarin App在调试时运行但在发布

时间:2018-04-04 11:18:41

标签: c# android xamarin crash crash-reports

我的Xamarin应用程序在调试模式下完美运行但在发布mod上崩溃。我收到了这个错误:"不幸的是App停止了#34;。我通过USB连接手机,当我在发布模式下运行应用程序时,我收到此错误。

不幸的是我无法在发布模式中调试应用程序,因为我在“输出”窗口中收到此消息:" Android应用程序正在运行(在android项目属性中禁用调试)",尽管"启用开发人员检测"框已选中。我尝试了所有链接替代无/ SDK / SDK和用户,但仍然无法正常工作。

有没有办法在日志文件或其他内容中查看导致崩溃的原因?

6 个答案:

答案 0 :(得分:0)

您可以尝试以下

解决方案1:卸载手动调试模式下部署的本地应用。部署发布应用程序。

解决方案2:更新您的Xamarin版本

解决方案3:项目设置→Android选项→链接器→配置=发布;链接=仅限Sdk程序集

答案 1 :(得分:0)

确保在版本配置enter image description here

中未选择 Shared Mono Runtime

答案 2 :(得分:0)

我今天有同样的问题。在对配置和构建设置进行了几次试验之后,对我有用的唯一解决方案是通过NuGet软件包管理器更新所有与Xamarin相关的软件包。遇到这种情况时,您可以下次尝试。

答案 3 :(得分:0)

实际上,请清洁解决方案,卸载应用程序并卸载API可以正常工作

答案 4 :(得分:0)

经过数小时的努力,我的情况是因为我在App.xaml文件中使用静态资源,同时在声明上方定义了另一个资源。奇怪的是,它在调试模式下可以完美运行,但是由于某种原因,它在发布模式下一直崩溃。查明问题后,我对声明进行了重新排序,问题已解决。

无论如何,您可以做的是将整个onCreate块包装在MainActivity中的try catch块内,并将异常记录在某个地方,例如公开的http请求记录器或将其写入文件。在撰写本文时,RequestBin提供了这种免费服务。创建端点后,只需向URL发出发布请求,并以异常消息作为数据即可。这是一个示例:

protected override void OnCreate(Bundle bundle)
{
    try
    {
        // oncreate logic
    }
    catch(Exception ex)
    {
        var client = new HttpClient();
        client.PostAsync("your logger api url", new StringContent(ex.Message)).Wait();
    }
}

希望这对某人有帮助。

答案 5 :(得分:0)

我在项目属性中为“发布”关闭了“优化代码”。为我工作。