Unity ARCore安卓项目反射委托参数不兼容错误求助
Unity + ARCore安卓应用按钮点击触发参数不兼容异常
我正在开发基于Unity与ARCore的安卓移动应用,此前多次Git提交后运行均正常。为排查问题已回退至历史提交版本,但问题仍未解决。未手动修改任何ARCore相关内容,怀疑是编辑器或Unity应用层面的错误。触发按钮点击操作时出现以下错误:
ArgumentException: 方法参数不兼容 System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) (at <fb001e01371b4adca20013e0ac763896>:0) System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method) (at <fb001e01371b4adca20013e0ac763896>:0) UnityEngine.Events.InvokableCall..ctor (System.Object target, System.Reflection.MethodInfo theFunction) (at <49f4e7e791cc4fffacd88f729e2b1e4c>:0) UnityEngine.Events.PersistentCall.GetRuntimeCall (UnityEngine.Events.UnityEventBase theEvent) (at <49f4e7e791cc4fffacd88f729e2b1e4c>:0) UnityEngine.Events.PersistentCallGroup.Initialize (UnityEngine.Events.InvokableCallList invokableList, UnityEngine.Events.UnityEventBase unityEventBase) (at <49f4e7e791cc4fffacd88f729e2b1e4c>:0) UnityEngine.Events.UnityEventBase.RebuildPersistentCallsIfNeeded () (at <49f4e7e791cc4fffacd88f729e2b1e4c>:0) UnityEngine.Events.UnityEventBase.PrepareInvoke () (at <49f4e7e791cc4fffacd88f729e2b1e4c>:0) UnityEngine.Events.UnityEvent.Invoke () (at <49f4e7e791cc4fffacd88f729e2b1e4c>:0) UnityEngine.UI.Button.Press () (at E:/Programs/2020.1.2f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:68) UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at E:/Programs/2020.1.2f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:110) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at E:/Programs/2020.1.2f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:50) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at E:/Programs/2020.1.2f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:261) UnityEngine.EventSystems.EventSystem:Update() (at E:/Programs/2020.1.2f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:376)
排查与修复方案
检查UI按钮事件绑定
- 逐一检查所有Button组件的OnClick事件,确认绑定的方法无参数(Button默认的OnClick事件只支持无参方法,若绑定带参数的方法会触发参数不兼容错误)
- 验证绑定的脚本对象是否存在:若脚本被删除、挂载对象被销毁,会导致引用失效引发序列化错误
修复Unity序列化异常
- 选中报错的Button对象,右键选择
Revert重置组件,之后重新绑定正确的方法 - 删除项目根目录下的
Library文件夹,重启Unity让编辑器重新序列化所有资源
- 选中报错的Button对象,右键选择
编辑器与包资源验证
- 当前使用Unity 2020.1.2f1,可尝试升级至同系列稳定版本(如2020.1.22f1)测试,排查版本BUG
- 在Package Manager中找到
com.unity.ugui,选择Reimport重新导入UI包,修复可能损坏的文件
排除ARCore间接冲突
- 临时禁用ARCore相关组件,测试按钮点击是否正常,确认是否为ARCore与UGUI事件系统的兼容性问题
- 重新导入ARCore SDK包,确保包文件完整无损坏
内容的提问来源于stack exchange,提问作者Brandon
相关产品推荐
相关产品推荐

