应用程序开始崩溃

时间:2013-05-21 08:24:00

标签: c# ios xamarin.ios crash

将更新发送到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 个答案:

答案 0 :(得分:5)

你好你正在使用2个绑定MBProgressHUDMBProgressHUD.MTMBProgressHUDAlexTouch.MBProgressHUD.MBProgressHUD的库。请使用一个,我建议使用Xamarin Components Store上的那个。这是最近的发布MBProgressHUD,您可以安全地替换当前使用的。{/ p>

我是AlexTouch.MBProgressHUD.MBProgressHUD C#Binding的作者,我可以告诉你它最近没有更新,所以我鼓励你使用Components Store上的那个。感谢Jonathan George为他惊人的图书馆。

希望这有帮助

亚历

答案 1 :(得分:1)

除了@dalexsoto建议(只使用一个版本的库),你需要找出它为什么适合你。

  

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

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

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

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

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

答案 2 :(得分:0)

您是否尝试过更改错误所在的类AlexTouch.MBProgressHUD.MBProgressHUD的名称?

答案 3 :(得分:0)

问题解决了..

是由于最新版本的Xamarin