Sie müssen EnsureLoaded im Datei-Plugin aufrufen, bevor Sie den DownloadCache verwenden

8

Ich habe die Version 4.2.1 von Version 4.2.0 über NuGet auf MvvmCross aktualisiert und jetzt stürzt das Android-Projekt beim Start ab. Ein MvxException wird während des Begrüßungsbildschirms mit der folgenden Meldung ausgelöst:

  

MvvmCross.Platform.Exceptions.MvxException: Sie müssen EnsureLoaded aufrufen   auf dem Datei-Plugin, bevor Sie den DownloadCache verwenden

Ich rufe diese Methode tatsächlich in MvxAppCompatSetup.InitializeLastChance override auf. Das hat mit Version 4.2.0 gut funktioniert, aber jetzt trifft der Code InitializeLastChance nicht mehr, wenn er Version 4.2.1 ausführt.

%Vor%

Ich kann die EnsureLoaded -Aufrufe nicht nach InitializeFirstChance verschieben, weil ich dort eine Ausnahme bekomme, weil Plugins noch nicht initialisiert wurden

  

Fehler beim Auflösen des Typs MvvmCross.Platform.Plugins.IMvxPluginManager

Die MvxSetup.InitializePluginFramework scheint diese Ausnahme auszulösen, wenn InitializePluginFramework aufgerufen wird.

NuGet zeigte Fehlermeldungen für jedes Plugin an, das ich während des Updates installiert habe:

  

[Fehler] Die Datei '... \ Project.Droid \ Bootstap \ XXXBootstrap.cs'

konnte nicht gespeichert werden

Die Dateien sind definitiv da und das Paket wird installiert, ohne einen Fehler zu melden.

Was ist der richtige Weg, um mit diesem Problem umzugehen?

    
Trevor Balcom 05.07.2016, 20:39
quelle

2 Antworten

5

Versuchen Sie, DownloadCachePluginBootstrap.cs und FilePluginBootstrap.cs zu entfernen, lassen Sie das manuelle Setup einfach in InitializeLastChance (). Es scheint, dass es ein Problem mit der Ladereihenfolge gibt.

    
Piotr Bialic 06.07.2016, 19:16
quelle
3

Wie @Piotr erwähnt:

  

Versuchen Sie nur, DownloadCachePluginBootstrap.cs und FilePluginBootstrap.cs zu entfernen   Lassen Sie das manuelle Setup in InitializeLastChance (). Es scheint, dass es ein   Problem mit der Ladereihenfolge.

Das hat das Problem auch für mich behoben.

Ich möchte nur meinen Code in der Setup.cs des iOS-Projekts freigeben, weil ich denke, dass das eine bessere Implementierung ist. Ich habe InitializeLastChance () nicht verwendet. Stattdessen habe ich AddPluginsLoaders und LoadPlugins verwendet.

%Vor%     
Aboo 10.08.2016 01:12
quelle

Tags und Links