- 私はthisを見ましたが、解決策は機能していません。
- 私は最新のMvvmCross(実際に最新のものすべて)に更新しましたが、これはこの執筆時点で5.4.2です。ここで
私のプレゼンターを登録する私の設定です:ここではMvvmCross 5.4カスタムプレゼンター:メソッド 'MvvmCross.Droid.Views.MvxAndroidViewPresenter..ctor'が見つかりません
public class Setup : MvxAppCompatSetup
{
public Setup(Context applicationContext)
: base(applicationContext)
{
}
protected override IEnumerable<Assembly> AndroidViewAssemblies => new List<Assembly>(base.AndroidViewAssemblies)
{
typeof(global::Android.Support.V7.Widget.Toolbar).Assembly
};
protected override IMvxApplication CreateApp()
{
Mvx.RegisterSingleton<INetworkManager>(() => new NetworkManagerAndroid(this.ApplicationContext));
return new App();
}
protected override void InitializeLastChance()
{
base.InitializeLastChance();
Mvx.RegisterSingleton<IAnalyticsService>(() => GoogleAnalyticsService.GetInstance());
}
protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
var presenter = new MyAndroidPresenter(AndroidViewAssemblies);
Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(presenter);
return presenter;
}
}
は私の実際のプレゼンターである:
public class MyAndroidPresenter : MvxFragmentsPresenter
{
public MyAndroidPresenter(IEnumerable<Assembly> AndroidViewAssemblies)
: base(AndroidViewAssemblies) // EXCEPTION HERE
{
}
protected override void ShowFragment(MvxViewModelRequest request)
{
if (GoHomeHandled(request))
return;
if (ShowModalHandled(request))
return;
base.ShowFragment(request);
}
protected override void ShowActivity(MvxViewModelRequest request, MvxViewModelRequest fragmentRequest = null)
{
if (GoHomeHandled(request))
return;
if (ShowModalHandled(request))
return;
base.ShowActivity(request, fragmentRequest);
}
private bool ShowModalHandled(MvxViewModelRequest request)
{
if (request.PresentationValues == null)
return false;
var viewsContainer = Mvx.Resolve<IMvxViewsContainer>();
var viewType = viewsContainer.GetViewType(request.ViewModelType);
var intent = new Intent(Application.Context, viewType);
if (request.PresentationValues.ContainsKey(Utilities.Constants.Navigation.ShowModal))
{
intent.AddFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask);
Application.Context.StartActivity(intent);
return true;
}
else if (request.PresentationValues.ContainsKey(Utilities.Constants.Navigation.StayModal))
{
Application.Context.StartActivity(intent);
return true;
}
else
{
return false;
}
}
private bool GoHomeHandled(MvxViewModelRequest request)
{
if (request.PresentationValues == null)
return false;
if (request.PresentationValues.ContainsKey(Utilities.Constants.Navigation.ReturnHome))
{
var intent = new Intent(Application.Context, typeof(MainActivity));
intent.AddFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask | ActivityFlags.TaskOnHome);
Application.Context.StartActivity(intent);
return true;
}
return false;
}
}
私は取得しています例外は、タイトルの1です。私はクリーニング、再構築、NuGetパッケージのリフレッシュを試みました。
私は少し挫折しました。助けていただければ幸いです。
MvvmCrossのすべての古いアンドロイドの依存関係を更新/削除してもよろしいですか? MvvmCrossのメインリポジトリのどこでも 'MvxFragmentsPresenter'が見つかりません。 https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-50?scroll=1300 – Pilatus