バージョン4.2.0からNuGet経由でMvvmCrossバージョン4.2.1にアップデートしました。起動時にAndroidプロジェクトがクラッシュするようになりました。 MvxException
がメッセージと共にスプラッシュ画面中にスローされます。DownloadCacheを使用する前にFileプラグインでEnsureLoadedを呼び出す必要があります
MvvmCross.Platform.Exceptions.MvxException:あなたは、私が実際にこれを呼び出していますDownloadCache
を使用する前に、ファイルのプラグインにEnsureLoaded を呼び出す必要がありますメソッドをオーバーライドします(MvxAppCompatSetup.InitializeLastChance
)。これはバージョン4.2.0でうまくいきましたが、バージョン4.2.1を実行しているときにコードはInitializeLastChance
になっていません。そこにプラグインがまだ
を初期化されていないので、私は例外を取得しますが、型MvvmCross.Platform.Plugins.IMvxPluginManagerを解決するために失敗したため、
protected override void InitializeLastChance() { base.InitializeLastChance(); MvvmCross.Plugins.File.PluginLoader.Instance.EnsureLoaded(); MvvmCross.Plugins.DownloadCache.PluginLoader.Instance.EnsureLoaded(); }
私は
InitializeFirstChance
にEnsureLoaded
呼び出しを移動することはできません
MvxSetup.InitializePluginFramework
は、InitializePluginFramework
が呼び出されたときにこの例外をスローするようです。
NuGetは、私は、更新時にインストールされている各プラグインのエラーメッセージが表示される:
[失敗]ファイルをファイルではありませんでした」... \ Project.Droid \ Bootstap XXXBootstrap.cs \
ファイルが確実に存在し、パッケージはエラーを報告することなくインストールされます。
この問題を解決する正しい方法は何ですか?
これは問題を修正するようです。 –
Ok上記のファイルをBootstrapフォルダから削除し、InitializeLastChance()メソッドでロード順序を明示的に定義することで、問題を解決するようです。 InitializeLastChanceの詳細については、[個別のカスタマイズ](https:// github。MvvmCross.Plugins.File.PluginLoaderタイプのプラグインローダーが見つかりませんでした。ここで説明しているもう少し長めの回避策があります。https://www.mvvmCross/MvvmCross/mvvmCross/wiki /カスタマイズとアプリケーションとセットアップを使用したカスタマイズ – JohnnyJaxs
//github.com/MvvmCross/MvvmCross-Plugins/issues/119#issuecomment-233129197 – foxanna