- 나는 this을 보았으며 해결책이 작동하지 않습니다.
- 필자는이 글을 쓸 당시 최신 MvvmCross (실제로는 최신의 모든 것)를 5.4.2로 업데이트했습니다.
MvvmCross 5.4 사용자 정의 프리젠터 : 메서드 'MvvmCross.Droid.Views.MvxAndroidViewPresenter..ctor'를 찾을 수 없음
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; } }
내가 갖는 예외는 제목의 하나입니다
이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; } }
여기 내 실제 발표자 :
은 여기 내 발표자를 등록 내 설정입니다. 청소, 재건, NuGet 패키지를 새로 고치려 고 노력했습니다.
저는 조금 좌절감을 느낍니다. 나는 어떤 도움을 주셔서 감사합니다.
MvvmCross의 모든 기존 안드로이드를 업데이트/제거 했습니까? MvvmCross의 메인 저장소에서 'MvxFragmentsPresenter'를 찾을 수 없습니다. https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-50?scroll=1300 – Pilatus