升级到Monotouch 4.0后出现MissingMethodException
本文关键字:MissingMethodException Monotouch | 更新日期: 2023-09-27 17:49:29
是否有人使用优秀的Sparrow 2D monotouch库?
https://github.com/trustme/Sparrow我刚刚更新到Monotouch 4.0和Monodevelop 2.4.2,什么时候重建并运行SparrowTest给了我这个奇怪的错误:
System.MissingMethodException has been thrown "Method not found:
'Monotouch.ObjCRuntime.Messaging.void_objc_msgSend_Boolean'." at
SparrowTest.AppDelegateIPhone.FinishedLaunching in
AppDelegateIPhone.cs:23
方法是:
SPStage.SupportHighResolutions = true;
当注释时,它会在许多其他方法上给出相同的错误。我尝试使用不同的SDK版本,但问题仍然存在。
什么线索吗?
您需要使用MonoTouch 4的btouch重新生成sparrow.dll
尝试创建一个带有out的脚本来重新生成第三方库避免此问题的另一种方法是,在项目的生成输出中选择:不要链接程序集你的项目将工作
问题解决了!
对于MonoTouch 4.0,我们必须使用smcs而不是gmc。
下面是用MonoTouch 4.0生成sparrow.dll的正确过程,分两步:
/Developer/MonoTouch/usr/bin/btouch Sparrow .cs -s: enums .cs——outdir=gen -ns=Sparrow——unsafe——sourceonly=genfiles
/Developer/MonoTouch/usr/bin/smcs out:sparrow.dll cat genfiles
extensions.cs -unsafe -r:/Developer/MonoTouch/usr/lib/mono/2.1/MonoTouch .dll enumt .cs -target:library
感谢Geoff Norton和Duane Wandless的帮助!