UnityPlayer在Windows Phone 8上崩溃

时间:2013-12-17 12:22:47

标签: windows-phone-8 unity3d

在Windows Phone 8(诺基亚Lumia 520)上调试应用程序时遇到崩溃,我无法弄清楚原因。该游戏是在Unity中开发的,首先针对iOS和Android,现在移植到WP8。在进入我的脚本之前发生了故障,并且还没有到达UnhandledException处理程序。

调试器(仅限本机)设置为在抛出异常和用户未处理时中断。第一次调用堆栈是:

KERNELBASE.DLL!RaiseException() Unknown
coreclr.dll!RaiseTheExceptionInternalOnly(class Object *,int,int)   Unknown
coreclr.dll!UnwindAndContinueRethrowHelperAfterCatch(class Frame *,class Exception *)   Unknown
coreclr.dll!AssemblyNative::GetType(struct QCall::AssemblyHandle,unsigned short const *,int,int,struct QCall::ObjectHandleOnStack)  Unknown
mscorlib.ni.dll!702d7056()  Unknown
mscorlib.ni.dll!702d7056()  Unknown
mscorlib.ni.dll!702d7056()  Unknown
...

(无法加载mscorlib.ni.pdb,因此堆栈帧未符号化) 在下一个中断调用堆栈之后包含:

KERNELBASE.DLL!RaiseException() Unknown
Msvcr110.dll!_CxxThrowException(void * pExceptionObject=0x06a9fc24, const _s__ThrowInfo * pThrowInfo) Line 152  C++
Vccorlib110.dll!__abi_WinRTraiseCOMException(long hr=-2146234304) Line 502  C++
UnityPlayer.dll!ScriptingTypeProvider_Metro::NativeTypeFor(const char * namespaze=0x05f2d228, const char * name=0x05ba0aa0) Line 29 C++
UnityPlayer.dll!ScriptingTypeRegistry::GetType(const char * namespaze=0x06a9fd88, const char * name=0x05f2d2ac) Line 19 C++
UnityPlayer.dll!MonoScript::RebuildFromAwake() Line 149 C++
UnityPlayer.dll!PersistentManager::LoadFileCompletelyThreaded(const std::basic_string<char,std::char_traits<char>,stl_allocator<char,51,4> > & pathname={...}, int * fileIDs=0x06a9fec8, int * instanceIDs=0x00010004, int size=-1, bool loadScene=false, LoadProgress * loadProgress=0x06a9fec8) Line 1452 C++
UnityPlayer.dll!PreloadLevelOperation::Perform() Line 652   C++
UnityPlayer.dll!PreloadManager::Run() Line 235  C++
UnityPlayer.dll!PreloadManager::Run(void * managerPtr=0x03d91540) Line 187  C++
UnityPlayer.dll!Thread::RunThreadWrapper(void * ptr=0xfffffffe) Line 44 C++
UnityPlayer.dll!<lambda_14163fd8e7b3473ba35abd0bcfa8d126>::operator()(Windows::Foundation::IAsyncAction ^ __formal=0x05be84a8) Line 273 C++
UnityPlayer.dll!Windows::System::Threading::WorkItemHandler::[Windows::System::Threading::WorkItemHandler::__abi_IDelegate]::__abi_Windows_System_Threading_WorkItemHandler___abi_IDelegate____abi_Invoke(Windows::Foundation::IAsyncAction ^ __param0=0x03d91528)  C++
THREADPOOLWINRT.DLL!Windows::System::Threading::CThreadPoolWorkItem::CommonWorkCallback(void)   Unknown
THREADPOOLWINRT.DLL!Windows::System::Threading::CThreadPoolWorkItem::TimeSlicedCallback(void *) Unknown
NTDLL.DLL!RtlUserThreadStart()  Unknown

输出结果说:

First-chance exception at 0x77271ECF in TaskHost.exe: Microsoft C++ exception: Platform::COMException ^ at memory location 0x06A9FC24. HRESULT:0x80131040

如果我正确地将Google结果解释为“HRESULT:0x80131040”,则通常会与消息“找到的程序集的清单定义与程序集引用不匹配”相关联。如何找出哪个组件导致问题?我应该尝试哪些方法来调查此问题?

环境:

  • Windows Pro 8.1 64位
  • Unity Pro 4.3.1f1
  • 适用于Windows Phone的Microsoft Visual Studio Express 2012(随Windows Phone SDK 8.0提供)

相关问题:http://answers.unity3d.com/questions/595091/windows-phone-8-debugger.html

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

Tautvydas Zilys surmised原因是针对不同平台的同名程序集的版本不匹配;他是对的。