将更新发送到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
我认为这会导致崩溃,但我不知道如何修复它,它让我感到困惑,因为它可以在模拟器中调试和发布,但不能在我的设备上使用。
答案 0 :(得分:5)
你好你正在使用2个绑定MBProgressHUD
,MBProgressHUD.MTMBProgressHUD
和AlexTouch.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