无法编译生成的注册码 - MT4109
Posted
技术标签:
【中文标题】无法编译生成的注册码 - MT4109【英文标题】:Failed to compile the generated registrar code - MT4109 【发布时间】:2016-11-14 12:09:45 【问题描述】:在 ios 中构建 Xamarin.Forms 应用程序,我收到以下错误
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets (_CompileToNative target) ->
MTOUCH: error MT4109: Failed to compile the generated registrar code. Please file a bug report at http://bugzilla.xamarin.com
6 Warning(s)
1 Error(s)
经过时间 00:00:51.5040280
obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:6806:74: error: expected a type
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)p0 shouldReceivePress:(UIPress *)p1;
^
/obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:6848:74: error: expected a type
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)p0 shouldReceivePress:(UIPress *)p1
^
obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:6851:10: error: no matching function for call to 'native_to_managed_trampoline_37'
return native_to_managed_trampoline_37 (self, _cmd, &managed_method, p0, p1, "UIKit.UIGestureRecognizer, Xamarin.iOS", "UIKit.UIPress, Xamarin.iOS", "UIKit.UIGestureRecognizer+_UIGestureRecognizerDelegate, Xamarin.iOS", "ShouldReceivePress");
obj/iPhone/Debug/build-iphone8.1-10.1.1/mtouch-cache/registrar.m:1705:13: note: candidate function not viable: no known conversion from 'id' to 'int *' for 5th argument
static BOOL native_to_managed_trampoline_37 (id self, SEL _cmd, MonoMethod **managed_method_ptr, UIGestureRecognizer * p0, UIPress * p1, const char *r0, const char *r1, const char *r2, const char *r3)
^
4 errors generated.
只有在尝试部署到物理设备时才会发生这种情况,但在模拟器上一切正常。
【问题讨论】:
【参考方案1】:我在 Mac 的虚拟机中遇到了与 vs 2017 相同的问题。是因为 Xcode 11.0 的自动更新,Xamarin.ios 版本的 vs 2017 不兼容 Xcode 11.0,
首先我更新了 vs 2017--> vs 2019 和 Visual Studio for Mac 也更新到最新版本,之后问题就消失了?
【讨论】:
【参考方案2】:我今天遇到了同样的错误。我之前有 XCode 7.0.1,看起来 UIPress 类是在 iOS 9.2 之后引入的,而 XCode 7.0.1 没有。所以我刚刚升级了我的 XCode,它解决了这个问题。
【讨论】:
以上是关于无法编译生成的注册码 - MT4109的主要内容,如果未能解决你的问题,请参考以下文章
安装了jdk ,配置了环境变量,都正确,为啥无法识别Java文件?
WPS之前正用着,现在公式编译器打不开,而且提示无法创建对象,请确认对象已经在系统注册表中注册。