![](/img/trans.png)
[英]App crashes in release mode and not in debug mode - Xamarin Forms
[英]Same Android app who runs on Debug mode, crashes on release mode
我使用Xamarin為Visual Studio和C#語言編寫了一個簡單的應用程序。 代碼是:
HubConnection hubConnection;
IHubProxy chatHubProxy;
async void btnConnect_Click(object sender, EventArgs e)
{
try
{
TextView log = FindViewById<TextView>(Resource.Id.txtLog);
base.OnResume();
hubConnection = new HubConnection("http://192.168.1.3:2010/signalr");
chatHubProxy = hubConnection.CreateHubProxy("MyHub");
chatHubProxy.On<string>("AddMessage", (message) =>
{
TextView text = FindViewById<TextView>(Resource.Id.txtLog);
text.Text = message;
});
var localIP = "192.168.1.104"; //the android device has this IP
await hubConnection.Start();
var srvrMessage = chatHubProxy.Invoke<string>("LoginFromMobile", "mahdi", "p@SsW0Rd",
hubConnection.ConnectionId, localIP);
if (srvrMessage != null)
{
log.Text = srvrMessage.Result;
}
else
log.Text = "can't connect to server";
}
catch (Exception ex)
{
TextView text = FindViewById<TextView>(Resource.Id.txtLog);
text.Text = ex.StackTrace;
}
}
當我點擊“連接”按鈕時,我連接到網絡中我的電腦上的SignalR Hub,並且在DEBUG模式下一切正常。 但不幸的是,當我在RELEASE模式下編譯相同的應用程序時,我收到以下錯誤:
我不明白為什么......請告訴我我需要考慮什么才能使應用程序在發布模式下正常工作。 有任何許可問題嗎? 有些配置或設置缺失? 您的指南真的很有幫助和贊賞。
如果某些東西在調試模式下工作但沒有處於發布模式,那么很可能問題是鏈接器在生成Release二進制文件時不包括你的dll。
如果您在解決方案資源管理器中雙擊Android項目,則可以更改Build - > Android Build下的設置。
您需要為配置選擇Release,然后選擇Linker選項卡。 如果您選擇“不鏈接”所有dll,您的項目引用將包含在Release二進制文件中。 這將導致更大的二進制大小,但將幫助您診斷它是否是問題所在。
您可以從Xamarin文檔中了解有關鏈接器的更多信息: https : //developer.xamarin.com/guides/ios/advanced_topics/linker/
鏈接到“僅限Sdk程序集”解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.