DryIoc Contenedor de Excepción sólo en el modo de disparador para XF w/ Prisma Aplicación para Android

Me estoy haciendo de la siguiente excepción, pero sólo en la versión de LANZAMIENTO para un Xamarin.Forms de Android app construido con Prism w/ DryIoc contenedor y los pop-ups Plugin (que la excepción se refiere). La aplicación funciona muy bien en la DEPURACIÓN. Sólo estoy usando el SDK de la asamblea de los enlaces.

Alguien ha topado con este?

Alguna sugerencia para la determinación de la causa raíz/fijación?

Tengo esta excepción cuando se ejecuta en modo de Lanzamiento solo y no tengo idea de por qué - por favor alguien puede ayudarme con esto? Funciona perfectamente en modo de Depuración.

La excepción se tira al intentar hacer la primera navegación (utilizando INavigationService.NavigateAsync).

DryIoc.ContainerException: 'Unable to resolve MyProject.ViewModels.LoginPageViewModel with passed arguments [value(Prism.Plugin.Popups.PopupPageNavigationService)] IsResolutionCall from Container without Scope with Rules with {AutoConcreteTypeResolution} and without {UseFastExpressionCompilerIfPlatformSupported} with Made={FactoryMethod=ConstructorWithResolvableArguments} Where no service registrations found and no dynamic registrations found in 0 of Rules.DynamicServiceProviders and nothing found in 1 of Rules.UnknownServiceResolvers'

Yo estoy usando:

Visual Studio Enterprise version 16.2.5 on Windows 10 Xamarin Forms version 4.2.0.778463 Prism.DryIoc.Forms version 7.2.0.1367 Prism.Plugin.Popups version 7.2.0.573 Rg.Plugins.Popup version 1.1.5.188

Aquí está mi versión csproj configuración, que he modificado para que me deje de depuración en mi dispositivo físico:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants> <!-- get rid of debug -->
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidLinkMode>SdkOnly</AndroidLinkMode>
    <AndroidSupportedAbis>armeabi-v7a;</AndroidSupportedAbis>
    <AndroidCreatePackagePerAbi>true</AndroidCreatePackagePerAbi>
    <AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <BundleAssemblies>false</BundleAssemblies>
    <AotAssemblies>false</AotAssemblies>
    <EnableLLVM>false</EnableLLVM>
    <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
    <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
    <AndroidEnableMultiDex>false</AndroidEnableMultiDex>
    <JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
    <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
  </PropertyGroup>

Aquí está el registro en la Aplicación.xaml.cs, y yo lo he decorado la clase de la Aplicación con el Prisma de la [AutoRegisterForNavigation]. He Intentado registrar explícitamente PopupNavigationService y ventanas Emergentes (los 2 primeros comentado líneas) pero no, no hacer una diferencia.

    protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        // Services / Plugins
        //containerRegistry.RegisterInstance<IPopupNavigation>(PopupNavigation.Instance);
        //containerRegistry.Register<Prism.Plugin.Popups.PopupPageNavigationService>();
        containerRegistry.RegisterPopupNavigationService();
        containerRegistry.RegisterInstance<IContactService>(CrossContactService.Current);
        containerRegistry.Register<IDialogService, DialogService>();
        containerRegistry.Register<IQuoteProviderService, QuoteProviderService>();
        containerRegistry.Register<IMessageCheshirerService, MessageCheshirerService>();
        containerRegistry.Register<IMessageTrackerService, MessageTrackerService>();
        containerRegistry.Register<IEmailService, SendGridEmailService>();


        containerRegistry.Register<IAnalyticsService, FakeAnalyticsService>();
        containerRegistry.Register<IAuthenticationService, FakeAuthService>(); // note this overrides the real platform-specific implementations as desired
        containerRegistry.Register<IApiManager, FakeApiManager>();
        containerRegistry.Register<IInAppPurchaser, FakeInAppPurchaser>();

        containerRegistry.Register(typeof(IApiService<>), typeof(ApiService<>));

        // Non-Auto-Registered Views
        containerRegistry.RegisterForNavigation<NavigationPage>();
    }
0
2019-09-17 09:32:41
fuente
0 respuestas

Vea otras preguntas sobre etiquetas