【发布时间】:2017-06-29 07:04:47
【问题描述】:
我正在尝试减小应用程序大小并启用“链接所有程序集”,但我的应用程序崩溃并出现以下错误
MvvmCross.Platform.Exceptions.MvxException:无法从定位器 MvxDefaultViewModelLocator 构造和初始化 Japam.Core.ViewModels.MantraasViewModel 类型的 ViewModel - 检查 InnerException 了解更多信息
我试过了
--linkskip=mvvmcross.platform.ios
--linkskip=mvvmcross.core
--linkskip=mvvmcross.platform
但没有运气,在我的核心 pcl 项目的汇编级别保留属性。 还在 LinkerPleaseIncludefile 中添加了几个方法
public void Include(MvvmCross.Platform.IoC.MvxPropertyInjection injection)
{
injection = new MvvmCross.Platform.IoC.MvxPropertyInjection();
}
public void Include(MvxDefaultViewModelLocator locator)
{
locator = new MvxDefaultViewModelLocator();
}
但没用,有人可以帮我找出缺少的东西
MvvmCross.Platform.Exceptions.MvxException:无法为类型构造和初始化 ViewModel 来自定位器的 Japam.Core.ViewModels.MantraasViewModel MvxDefaultViewModelLocator - 检查 InnerException 以获取更多信息 ---> MvvmCross.Platform.Exceptions.MvxException:创建 MantraasViewModel 类型的 viewModel 时出现问题 ---> MvvmCross.Platform.Exceptions.MvxIoCResolveException: 失败 构造 MantraasViewModel ---> System.Reflection.TargetInvocationException:已引发异常 通过调用的目标。 ---> MvvmCross.Platform.Exceptions.MvxIoCResolveException: 失败 解析参数 sqliteConnectionFactory 类型的参数 IMvxSqliteConnectionFactory 创建时 Japam.Core.Services.DataServices.MantraService 在 MvvmCross.Platform.IoC.MvxSimpleIoCContainer.GetIoCParameterValues (System.Type 类型,System.Reflection.ConstructorInfo firstConstructor) [0x00036] 在 D:\git\MvvmCross\MvvmCross\Platform\Platform\IoC\
【问题讨论】:
-
InnerException到底说了什么? -
InnerException 没有显示,它只是显示
-
如果您选择继续并且当您的应用程序与调试器断开连接时,您应该能够在输出窗口中看到整个异常。这将包括内部异常。
-
输出窗口中没有任何内容,它只是说检查内部异常:(
-
缩小此问题的最简单方法是查看这是否是链接器问题。首先尝试设置为“不链接”,确认行为是否消失,然后继续前进。通常这些问题是因为您的代码被链接了。自定义链接器配置文件是控制它的最佳方式。 developer.xamarin.com/guides/cross-platform/advanced/…
标签: xamarin xamarin.ios mvvmcross