【问题标题】:Portable class library not working in Xamarin.Android app便携式类库在 Xamarin.Android 应用程序中不起作用
【发布时间】:2015-10-01 14:50:06
【问题描述】:

我在开发 Windows 商店应用程序时创建了一个便携式类库。在那个应用程序中,我使用了 MvvmCross 和 PCl。现在我想在我正在 Xamarin Studio 上开发的 Android 应用程序中使用相同的 PCl,但它没有按预期工作。它给了我一些与 MvxSimpleIoCContainer 相关的例外情况。 我已将 MVVMcross hot tuna starter 包的引用添加到我的 PCL 和 android 应用程序中,是否需要在 Xamarin.Android 应用程序中使用 PCl 和 MVVMcross 做其他事情?

【问题讨论】:

    标签: xamarin.android mvvmcross portable-class-library xamarin-studio


    【解决方案1】:

    您的 Android 应用似乎尚未启动 MvvmCross。您是否已将 Setup 类添加到 Android 项目并将 MainActivity 标记为在 MvxAcitivity 之后继承?如果是,那么您能否发布它抛出的确切异常?

    【讨论】:

    • 感谢您的回复。是的,我已经在我的 android 项目中添加了安装程序类,并在我的所有视图中继承了 MvxActivity。当我在做一些简单的测试应用程序时,我工作得很好,比如 pring hello world。但是当我试图在我的视图模型中实现构造函数注入时,它会出错。以下是例外情况
    • 在 Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.IoCConstruct (System.Type type) [0x0006b] in :0 at Cirrious.CrossCore.Mvx.IocConstruct (System.Type t) [0x00006 ] in :0 at Cirrious.CrossCore.IoC.MvxLazySingletonCreator.get_Instance () [0x00020] in :0 at Cirrious.CrossCore.IoC.MvxTypeExtensions+c__DisplayClass49.b__48 () [0x00000 ] in :0 at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer+ConstructingSingletonResolver.Resolve
    • 所以您将 DI 服务注册为惰性?您是否尝试使用 RegisterType 向 ConstructSingleton 注册它们?
    • 不,我没有尝试过。实际上我使用的是本身提供 IOC 的 MVVMCross。
    • 可以,但是需要注册要注入的服务。你这样做了吗?您需要在 viewModel 中注入什么依赖?
    【解决方案2】:

    为了在 android 中访问服务,我们需要在模拟器中启用互联网。由于这个问题,PCL 无法在我的 android 应用程序中运行。要启用这些设置,stackoverflow 上有很好的链接

    How to setup Android emulator proxy settings?

    还需要从本机平台传递 sqlite 路径,因为隔离存储依赖于平台。我的错误是因为这些问题。

    经过大量研发后发布此答案。我认为它可以帮助其他刚接触 Xamarin.android 的开发人员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 2020-02-02
      • 1970-01-01
      相关资源
      最近更新 更多