【问题标题】:App crashes when Link All Assemblies enabled启用链接所有程序集时应用程序崩溃
【发布时间】: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


【解决方案1】:

最后我发现了问题,是 SQLite 问题,所以我添加了以下三个命令,它开始工作,希望这对其他人有帮助

--linkskip=MvvmCross.Plugins.Sqlite 
--linkskip=SQLite-net 
--linkskip=MvvmCross.Plugins.Sqlite.iOS

我应该早点保留 SQLite,因为我的上一个项目保留了 SQLite,但这次忘记了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多