【问题标题】:App crashing on Windows Phone when deployed in Release mode在发布模式下部署时,应用程序在 Windows Phone 上崩溃
【发布时间】:2017-05-22 03:29:17
【问题描述】:

我们开发了一个支持 Android、iOS 和 Windows Phone 的 Xamarin Forms 应用程序。在调试模式下部署时,该应用程序可在所有三个操作系统上运行。

在发布模式下部署时,它也可以在 Android 和 iOS 上运行。使用 Release 模式部署时,它在 Windows Phone 8.1/10 上显示启动画面后立即崩溃,但奇怪的是,使用 Debug 模式部署时一切正常。

是什么原因?

有没有办法查看应用日志来诊断崩溃原因?

编辑 1:
嗨,杰拉德/德米特里安,

非常感谢您的回复。请在下面找到输出窗口的内容。有 XamlParseException 但没有其他信息。我还附上了 Windows Phone 的“Decuments\Debug”文件夹中的调试日志。

输出窗口的内容:

'AgHost.exe' (CoreCLR: DefaultDomain): Loaded 'C:\windows\system32\mscorlib.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Windows.RuntimeHost.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Windows.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Net.ni.dll'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Xml.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\MultiEventsApp.WinPhone.ni.DLL'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\Microsoft.Phone.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\MultiEventsApp.ni.DLL'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Parse.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Parse.Phone.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Xamarin.Forms.Core.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Runtime.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Threading.Tasks.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\Microsoft.Phone.Interop.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Core.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\WinMetadata\Windows.winmd'. Cannot find or open the PDB file.
Exception thrown: 'System.ArgumentNullException' in mscorlib.ni.dll
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Xamarin.Forms.Platform.WP8.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\ZXing.Net.Mobile.Forms.WindowsPhone.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\ImageCircle.Forms.Plugin.WindowsPhone.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Xamarin.Forms.Maps.WP8.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\ZXing.Net.Mobile.Forms.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\ZXingNetMobile.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\ZXing.Net.Mobile.Core.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\System.Windows.Interactivity.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\microsoft.phone.controls.toolkit.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Collections.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Resources.ResourceManager.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\ImageCircle.Forms.Plugin.Abstractions.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Xamarin.Forms.Maps.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\Microsoft.Phone.Maps.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Runtime.Serialization.ni.dll'. Symbols loaded.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\data\ProgramData\Microsoft\Windows\AppRepository\Packages\MultiEventsApp_1.0.0.0_neutral__74wf2z3scmpey\NI\Xamarin.Forms.Xaml.ni.DLL'. Cannot find or open the PDB file.
'AgHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\System.Diagnostics.Debug.ni.dll'. Symbols loaded.
Exception thrown: 'Xamarin.Forms.Xaml.XamlParseException' in Xamarin.Forms.Xaml.ni.DLL
Exception thrown: 'System.Reflection.TargetInvocationException' in mscorlib.ni.dll
Exception thrown: 'System.Reflection.TargetInvocationException' in Microsoft.Phone.ni.dll

Documents\Debug 文件夹中的内容:

Dump Summary
------------
Dump File:  MultiEventsApp with exception E0434352 on 1-07-2017 17.55.dmp : C:\Users\Pocket_User\Desktop\MultiEventsApp with exception E0434352 on 1-07-2017 17.55.dmp
Last Write Time:    1/7/2017 5:55:50 PM
Process Name:   aghost.exe : aghost.exe
Process Architecture:   ARM
Exception Code: 0xE0434352
Exception Information:  
Heap Information:   Present

System Information
------------------
OS Version: 10.0.14393
CLR Version(s): 4.5.22926.0

Modules
-------
Module Name Module Path Module Version
----------- ----------- --------------
aghost.exe  aghost.exe  10.0.14393.576
ntdll.dll   ntdll.dll   10.0.14393.576
KERNELBASE.dll  KERNELBASE.dll  10.0.14393.576
combase.dll combase.dll 10.0.14393.576
ucrtbase.dll    ucrtbase.dll    10.0.14393.576
RPCRT4.dll  RPCRT4.dll  10.0.14393.576
kernel32legacy.dll  kernel32legacy.dll  10.0.14393.576
bcryptPrimitives.dll    bcryptPrimitives.dll    10.0.14393.576
msvcrt.dll  msvcrt.dll  7.0.14393.576
kernel.appcore.dll  kernel.appcore.dll  10.0.14393.576
OLEAUT32.dll    OLEAUT32.dll    10.0.14393.576
shcore.dll  shcore.dll  10.0.14393.576
AgHostSvcs.dll  AgHostSvcs.dll  10.0.14393.576
TaskHostCore.dll    TaskHostCore.dll    10.0.14393.576
msvcp_win.dll   msvcp_win.dll   10.0.14393.576
wintypes.dll    wintypes.dll    10.0.14393.576
OnDemandBrokerClient.dll    OnDemandBrokerClient.dll    10.0.14393.576
advapi32legacy.dll  advapi32legacy.dll  10.0.14393.576
sechost.dll sechost.dll 10.0.14393.576
CoreUIComponents.dll    CoreUIComponents.dll    0.0.0.0
CoreMessaging.dll   CoreMessaging.dll   10.0.14393.576
EMCLIENT.dll    EMCLIENT.dll    10.0.14393.576
TASKHOSTSVCS.dll    TASKHOSTSVCS.dll    10.0.14393.576
WpPortingLibrary.dll    WpPortingLibrary.dll    0.0.0.0
SspiCli.dll SspiCli.dll 10.0.14393.576
minuser.dll minuser.dll 0.0.0.0
win32u.dll  win32u.dll  10.0.14393.576
gdi32.dll   gdi32.dll   10.0.14393.576
modernapiexthost.dll    modernapiexthost.dll    0.0.0.0
SecRuntime.dll  SecRuntime.dll  0.0.0.0
gdi32min.dll    gdi32min.dll    10.0.14393.576
WpCoreUtil.DLL  WpCoreUtil.DLL  0.0.0.0
msvcp110_win.dll    msvcp110_win.dll    10.0.14393.576
storageusage.dll    storageusage.dll    10.0.14393.576
procthreadexthost.dll   procthreadexthost.dll   0.0.0.0
ntmarta.dll ntmarta.dll 10.0.14393.576
CoreApplicationShim.dll CoreApplicationShim.dll 0.0.0.0
twinapi.appcore.dll twinapi.appcore.dll 10.0.14393.576
bcrypt.dll  bcrypt.dll  10.0.14393.576
PsmApp.dll  PsmApp.dll  10.0.14393.576
AppModelProxy.dll   AppModelProxy.dll   0.0.0.0
pacmantileshim.dll  pacmantileshim.dll  10.0.14393.576
VEEventDispatcher.dll   VEEventDispatcher.dll   10.0.14393.576
ActXPrxy.dll    ActXPrxy.dll    10.0.14393.576
pacmanclient.dll    pacmanclient.dll    10.0.14393.576
RMClient.dll    RMClient.dll    10.0.14393.576
mrmcorer.dll    mrmcorer.dll    10.0.14393.576
windows.ui.dll  windows.ui.dll  10.0.14393.576
dcomp.dll   dcomp.dll   10.0.14393.576
inputhost.dll   inputhost.dll   0.0.0.0
textinputframework.dll  textinputframework.dll  10.0.14393.576
CRYPTBASE.dll   CRYPTBASE.dll   10.0.14393.576
npctrl.dll  npctrl.dll  0.0.0.0
PROPSYS.dll PROPSYS.dll 7.0.14393.576
agcore.dll  agcore.dll  4.1.60221.0
SL_InterprocDll.dll SL_InterprocDll.dll 0.0.0.0
WS2_32.dll  WS2_32.dll  10.0.14393.576
CRYPT32.dll CRYPT32.dll 10.0.14393.576
d3d11.dll   d3d11.dll   10.0.14393.576
WININET.dll WININET.dll 11.0.14393.576
ole32_wp.dll    ole32_wp.dll    10.0.14393.576
urlmon.dll  urlmon.dll  11.0.14393.576
PlatformInterop.dll PlatformInterop.dll 0.0.0.0
MSASN1.dll  MSASN1.dll  10.0.14393.576
dxgi.dll    dxgi.dll    10.0.14393.576
iertutil.dll    iertutil.dll    11.0.14393.576
shlwapi.dll shlwapi.dll 10.0.14393.576
cfgmgr32.dll    cfgmgr32.dll    10.0.14393.576
dsclient.dll    dsclient.dll    10.0.14393.576
Windows.Storage.dll Windows.Storage.dll 10.0.14393.576
powrprof.dll    powrprof.dll    10.0.14393.576
profapi.dll profapi.dll 10.0.14393.576
coreclr.dll coreclr.dll 4.5.22926.0
CRYPTSP.dll CRYPTSP.dll 10.0.14393.576
werapiexthost.dll   werapiexthost.dll   0.0.0.0
mscorlib.ni.dll mscorlib.ni.dll 4.5.22926.0
rsaenh.dll  rsaenh.dll  10.0.14393.576
System.Windows.RuntimeHost.ni.dll   System.Windows.RuntimeHost.ni.dll   2.0.6.0
System.Windows.ni.dll   System.Windows.ni.dll   4.7.50915.0
System.Net.ni.dll   System.Net.ni.dll   4.7.50915.0
System.ni.dll   System.ni.dll   4.5.22926.0
System.Xml.ni.dll   System.Xml.ni.dll   4.5.22926.0
appchromeapi.dll    appchromeapi.dll    0.0.0.0
qcdx11um8612.dll    qcdx11um8612.dll    9.18.2074.0
MSVCR120.dll    MSVCR120.dll    12.0.21005.1
qcdx11compiler8612.dll  qcdx11compiler8612.dll  1.0.2074.0
MSVCP120.dll    MSVCP120.dll    12.0.21005.1
ShellChromeAPI.dll  ShellChromeAPI.dll  0.0.0.0
MultiEventsApp.WinPhone.ni.DLL  MultiEventsApp.WinPhone.ni.DLL  1.0.0.0
Microsoft.Phone.ni.dll  Microsoft.Phone.ni.dll  0.0.0.0
MultiEventsApp.ni.DLL   MultiEventsApp.ni.DLL   1.0.0.0
Parse.ni.DLL    Parse.ni.DLL    1.7.0.0
Parse.Phone.ni.DLL  Parse.Phone.ni.DLL  1.7.0.0
Xamarin.Forms.Core.ni.DLL   Xamarin.Forms.Core.ni.DLL   2.0.0.0
System.Runtime.ni.dll   System.Runtime.ni.dll   4.5.22926.0
System.Threading.Tasks.ni.dll   System.Threading.Tasks.ni.dll   4.5.22926.0
Microsoft.Phone.Interop.ni.dll  Microsoft.Phone.Interop.ni.dll  0.0.0.0
phoneinfo.dll   phoneinfo.dll   0.0.0.0
System.Core.ni.dll  System.Core.ni.dll  4.5.22926.0
wpnapps.dll wpnapps.dll 10.0.14393.576
XmlLite.dll XmlLite.dll 10.0.14393.576
Windows.ni.winmd    Windows.ni.winmd    0.0.0.0
Windows.winmd   Windows.winmd   0.0.0.0
StorageProxy.dll    StorageProxy.dll    0.0.0.0
Windows.Storage.ApplicationData.dll Windows.Storage.ApplicationData.dll 10.0.14393.576
YPerfHealthLogger.dll   YPerfHealthLogger.dll   0.0.0.0
dwrite.dll  dwrite.dll  10.0.14393.576
Xamarin.Forms.Platform.WP8.ni.DLL   Xamarin.Forms.Platform.WP8.ni.DLL   2.0.0.0
ZXing.Net.Mobile.Forms.WindowsPhone.ni.DLL  ZXing.Net.Mobile.Forms.WindowsPhone.ni.DLL  2.1.47.0
ImageCircle.Forms.Plugin.WindowsPhone.ni.DLL    ImageCircle.Forms.Plugin.WindowsPhone.ni.DLL    1.8.1.8
Xamarin.Forms.Maps.WP8.ni.DLL   Xamarin.Forms.Maps.WP8.ni.DLL   2.0.0.0
ZXing.Net.Mobile.Forms.ni.DLL   ZXing.Net.Mobile.Forms.ni.DLL   2.1.47.0
ZXingNetMobile.ni.DLL   ZXingNetMobile.ni.DLL   2.1.47.0
ZXing.Net.Mobile.Core.ni.DLL    ZXing.Net.Mobile.Core.ni.DLL    2.1.47.0
System.Windows.Interactivity.ni.DLL System.Windows.Interactivity.ni.DLL 3.0.30924.0
microsoft.phone.controls.toolkit.ni.DLL microsoft.phone.controls.toolkit.ni.DLL 8.0.1.0
System.Collections.ni.dll   System.Collections.ni.dll   4.5.22926.0
System.Resources.ResourceManager.ni.dll System.Resources.ResourceManager.ni.dll 4.5.22926.0
ImageCircle.Forms.Plugin.Abstractions.ni.DLL    ImageCircle.Forms.Plugin.Abstractions.ni.DLL    1.8.1.8
Xamarin.Forms.Maps.ni.DLL   Xamarin.Forms.Maps.ni.DLL   2.0.0.0
Microsoft.Phone.Maps.ni.dll Microsoft.Phone.Maps.ni.dll 3.0.30701.2350
System.Runtime.Serialization.ni.dll System.Runtime.Serialization.ni.dll 4.5.22926.0
Xamarin.Forms.Xaml.ni.DLL   Xamarin.Forms.Xaml.ni.DLL   2.0.0.0
System.Diagnostics.Debug.ni.dll System.Diagnostics.Debug.ni.dll 4.5.22926.0
errorhandlingext.dll    errorhandlingext.dll    10.0.10011.16384
mintdh.dll  mintdh.dll  10.0.14393.576

编辑 2:
我在这个问题上取得了一些进展。在我的情况下,FontFamily 属性引起了问题。因此,如果删除 fontfamily 属性并在发布模式下运行应用程序,则不会再引发异常,但屏幕在设备上的呈现方式与在调试模式下呈现的方式完全不同。

我附上了两个屏幕截图。我尝试按照 John 的说法在 Forms.Init 中添加第二个选项,但它给了我错误,因为该方法不支持第二个选项。

Debug mode screenshot

Release mode screenshot

关于上述行为,我有以下问题:

  • 为什么应用程序在调试模式下正常工作,而不是在发布模式下 模式?
  • 为什么屏幕在调试模式下正确呈现,而不是在 发布模式?
  • 为什么它不会像它抛出的那样抛出任何错误 发布模式?
  • 是否缺少任何参考?不确定是否是这种情况,因为应用程序会抛出异常。

有什么建议吗?

【问题讨论】:

  • 您是否已经检查了输出窗口?
  • 由于问题是目前写的,由于缺少信息,很难为您提供帮助。如here 所述,您可以在手机存储中的 Documents\Debug 文件夹中找到转储文件。请将转储的内容附加到您的帖子中。

标签: crash windows-phone xamarin.forms release-mode


【解决方案1】:

几个快速说明:

1.- 看起来注册按钮占用了所有屏幕高度,您是否尝试为该按钮指定高度?比如:

Button.HeightRequest = "40";

2.- 您是否尝试过链接行为“不链接”?

【讨论】:

    【解决方案2】:

    我的问题终于解决了。如果您有同样的问题,请在下面找到解决方案。

    逐步重新创建该项目表明我的应用程序运行良好,直到我在我的应用程序中添加 Xamarin.Forms.Maps 包。我正在安装最新版本的 Maps 包,它正在将它的依赖包升级到更高版本。地图插件导致 Xamarin.Forms 包从 2.3.2.127 升级到 2.3.3.180。因此,当我在发布模式下使用此版本的 Xamarin Forms 部署应用程序时,它会导致应用程序崩溃和我之前的回复中提到的 UI 问题。

    为了解决这个问题,我回退到与 Xamarin Forms 的 2.3.2.127 版本兼容的情人版本的地图,瞧!

    Xamarin Forms 的 2.3.3.180 版本中似乎存在错误。

    【讨论】:

      猜你喜欢
      • 2014-06-02
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多