C# Xamarin应用程序在调试时运行,但在发布时崩溃

C# Xamarin应用程序在调试时运行,但在发布时崩溃,c#,android,xamarin,crash,crash-reports,C#,Android,Xamarin,Crash,Crash Reports,我的Xamarin应用程序在调试模式下运行良好,但在发布模式下崩溃。我得到这个错误:“不幸的是,应用程序已经停止”。我通过USB连接手机,当我在发布模式下运行应用程序时,我收到了这个错误 不幸的是,我无法在release mod中调试应用程序,因为我在输出窗口中看到这样一条消息:“Android应用程序正在运行(在Android项目属性中禁用调试)”,尽管选中了“启用开发人员工具”框。我尝试了所有链接选项None/SDK/SDK和User,但仍然不起作用 有没有办法在日志文件或其他文件中查看导致

我的Xamarin应用程序在调试模式下运行良好,但在发布模式下崩溃。我得到这个错误:“不幸的是,应用程序已经停止”。我通过USB连接手机,当我在发布模式下运行应用程序时,我收到了这个错误

不幸的是,我无法在release mod中调试应用程序,因为我在输出窗口中看到这样一条消息:“Android应用程序正在运行(在Android项目属性中禁用调试)”,尽管选中了“启用开发人员工具”框。我尝试了所有链接选项None/SDK/SDK和User,但仍然不起作用


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

您可以尝试以下方法吗

  • 手动卸载在调试模式下部署的本地应用。部署发布应用程序

  • 更新您的Xamarin版本

  • 项目设置→ Android选项→ 连接器→ 配置=释放;链接=仅Sdk程序集


  • 确保在发布版配置中未选择共享单声道运行时,我今天遇到了同样的问题。在对配置和构建设置进行了几次尝试之后,唯一对我有效的解决方案是通过NuGet Package Manager更新所有与Xamarin相关的包。下次遇到这种情况时,您可以尝试此操作。

    事实上,请清理解决方案,卸载应用程序并卸载API,在苦苦挣扎数小时后,对我来说效果良好。

    在我的情况下,这是因为我在声明上方定义另一个资源时使用了app.xaml文件中的静态资源。奇怪的是,它在调试模式下工作得很好,但由于某种原因,在发布模式下一直崩溃。在查明问题之后,我重新排列了申报顺序,问题得到了解决

    无论如何,您可以将整个onCreate块包装在您的MainActivity中的try-catch块中,并将异常记录在某个位置,例如公共http请求记录器或将其写入文件。在写这篇文章的时候,他有这样的免费服务。创建端点后,只需向url发出post请求,并将异常消息作为数据。下面是一个例子:

    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();
        }
    }
    

    希望这对某人有所帮助。

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

    如果你能提供一个解决方案,那就太棒了。你可以在发布模式下打开调试。不管怎样,logcat文件告诉你,仅仅因为你第一次没有得到任何答案而再次问同一个问题的可能重复性在这里是不受欢迎的。我的问题只是在物理设备(不是模拟器)上的iOS内置版本模式,结果是项目属性上的链接设置与调试版本模式不同。原理同上。谢谢,我在我的一个页面中使用了错误的静态资源,但是为什么它在调试模式下工作得很好呢?在这种情况下很难找到问题。谢谢!这对我有用!节省了这么多时间