2

将我的更新发送到 App Store 后,从 App Store 下载应用程序时应用程序崩溃,但通过 Xamarin Studio 调试工作正常。

但是现在当尝试在我的设备上发布/调试时,它开始崩溃并给出此错误:

2013-05-21 10:20:30.933 nytLectio[10969:c07] Could not register the assembly 'MBProgressHUD': MonoTouch.MonoTouchException: Cannot register two managed types ('MBProgressHUD.MTMBProgressHUD' and 'AlexTouch.MBProgressHUD.MBProgressHUD') with the same native name ('MBProgressHUD').
  at MonoTouch.Registrar.Registrar.RegisterType (System.Type type, System.Collections.Generic.List`1 exceptions) [0x00000] in <filename unknown>:0 
  at MonoTouch.Registrar.Registrar.RegisterAssembly (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0 

我认为这就是导致崩溃的原因,但我不知道如何修复它,这让我感到困惑,因为它可以在模拟器中进行调试和发布,但不能在我的设备上使用。

4

4 回答 4

5

您好,您正在使用 2 个绑定的库,请MBProgressHUD只使用一个,我建议使用Xamarin 组件商店中的一个,这是一个更新的版本,您可以安全地替换当前正在使用的库。MBProgressHUD.MTMBProgressHUDAlexTouch.MBProgressHUD.MBProgressHUDMBProgressHUD

顺便说一句,我是AlexTouch.MBProgressHUD.MBProgressHUDC# Binding 的作者,我可以告诉你它最近没有更新,所以我鼓励你使用Components Store上的那个。感谢Jonathan George的精彩图书馆。

希望这可以帮助

亚历克斯

于 2013-05-21T13:18:23.857 回答
1

除了@dalexsoto 建议(仅使用库的一个版本),您还需要找出为什么这对您有用。

但是现在当尝试在我的设备上发布/调试时,它开始崩溃并给出此错误:

最好的猜测是您在原始调试/测试和应用程序提交到 AppStore 之间更新了 Xamarin.iOS 版本。

这就是为什么您现在在调试/发布设备版本上遇到相同问题的原因。较新的版本报告了一个错误情况,其中两种不同的类型使用相同的名称注册(最终行为未定义,因为我们无法预测注册顺序)。

如果这仍然适用于您的本地 Mac(在 Debug/Release 构建中),那么我的第二个最佳猜测是您的Debug(和/或Release )构建选项与您的AppStore配置具有不同的选项。这意味着您可能不会测试要运送给客户的产品。

在这种情况下,您应该检查您的选项、参数(如果需要,还可以查看构建日志)以确保它们仅以正常(预期)方式(例如是否创建调试符号)有所不同(例如调试构建)。

于 2013-05-21T14:03:43.950 回答
0

Have you tried changing the name of the class AlexTouch.MBProgressHUD.MBProgressHUD which the error is eluding to?

于 2013-05-21T09:34:38.133 回答
0

问题解决了..

是由于最新版本的 Xamarin

于 2013-05-21T16:06:09.303 回答