Я нахожусь в процессе обновления приложения с Xamarin Forms 2.4 до 3.2 и интеграции MvvmCross 6.2 в приложение Xamarin Forms.
Обновление Forms 3.2 прошло без проблем, обновленное приложение работало нормально,Но я споткнулся во время интеграции с MvvmCross.
При попытке отладить приложение доходит до точки останова в моем коде на этой строке:
return NavigationService.Navigate<LoginViewModel>();
MvvmCross кажется счастливым, поскольку яполучить шаг в код LoginViewModel.Тем не менее, когда он пытается отобразить экран, приложение взрывается со следующим исключением:
Исключение - Основные моменты
NullReferenceException
Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout(...)
Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:214
Глядя на строку 214 здесь показывает:
Android.Platform.GetRenderer(Page).UpdateLayout();
Первое, что я сделал, проверил весь код в моих пользовательских средствах визуализации и все выглядит нормально.
Затем я удалил все экземпляры своих пользовательских средств визуализации из LoginView.Xaml, но проблема сохраняется.Это привело меня к мысли, что в конфигурации я что-то упускаю.
В моем классе настройки Android у меня есть этот код:
protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
return new MvxAppCompatViewPresenter(AndroidViewAssemblies);
}
Я сравнил свой установочный код с этот пример и все это похоже на выравнивание.Я не знаю, где искать дальше.
Буду признателен за любые идеи о том, что нужно проверить, или об известном решении.Мне не удалось настроить что-либо, чтобы я мог пошагово пройти через код Xamarin.Forms, так как получить контроль над тем, что является нулем, оказывается неловко.
Исключение - Дополнительная информация
UNHANDLED EXCEPTION:
System.NullReferenceException: Object reference not set to an instance of an object.
at Xamarin.Forms.Platform.Android.AppCompat.Platform.Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00017] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:214
at Xamarin.Forms.Platform.Android.PlatformRenderer.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0000e] in D:\a\1\s\Xamarin.Forms.Platform.Android\PlatformRenderer.cs:73
at Android.Views.ViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00009] in <b72bf8f25b8d497a89864a71b1ed8899>:0
at (wrapper dynamic-method) System.Object.40(intptr,intptr,bool,int,int,int,int)
JNI RegisterNativeMethods: attempt to register 0 native methods for android.runtime.JavaProxyThrowable