2017-02-17 27 views
1

Я использую библиотеки поддержки MvvmCross и Xamarin в своем проекте и после обновления MvvmCross с версий 4.2.0 до 4.4.0 и пакетов поддержки Xamarin с версии 23.3.0 до 25.1.1 , Я не могу выполнить проект. Приложение всегда сбой в SplashScreen с ошибкой: конструктор по умолчанию не найден для типа MvvmCross.Platform.IoC.MvxPropertyInjector. Ошибка возникает в режиме отладки и режиме деблокирования.Конструктор по умолчанию не найден для типа MvxPropertyInjector

Мои SplashScreen:

[Activity(Icon = "@drawable/ic_launcher", 
     Theme = "@style/InflorTheme.Splash", 
     NoHistory = true, 
     MainLauncher = true, 
     ScreenOrientation = ScreenOrientation.Portrait)] 
    public class SplashScreen : MvxSplashScreenActivity 
    { 
     protected override void OnCreate(Bundle bundle) 
     { 

       base.OnCreate(bundle); 
     } 
    } 

ответ

1

Добавьте следующие строки в ваш файл LinkerPleaseInclude:

public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector) 
{ 
    injector = new MvvmCross.Platform.IoC.MvxPropertyInjector(); 
} 

Вам может понадобиться другие подсказки для линкера не не выбрасывать код, который вызывается только через Reflection.

+0

У меня такая же проблема прямо сейчас, произошла после обновления java и android api. Для начала нет файла LinkerPleaseInclude.cs (не добавлялся при добавлении mvvmcross), добавление этого кода вручную не кажется ничем (это было решением для той же проблемы, 2 года назад). [this] (http://stackoverflow.com/questions/23581846/xamarin-linker-default-constructor-not-found-for-type-cirrious-crosscore-ioc-m/). Я знаю, что проблема связана с компоновкой сборок, но даже если я установил, что ни одна проблема не остается. – SilentStorm

+0

Из [changelog] (https://developer.android.com/about/versions/nougat/android-7.0-changes.html): «Начиная с Android 7.0 система запрещает приложениям динамически связываться с библиотеками, отличными от NDK, что может привести к сбою вашего приложения. Это изменение в поведении направлено на создание совместимого приложения с использованием обновлений платформы и разных устройств. Несмотря на то, что ваш код может не связываться с частными библиотеками, возможно, что сторонняя статическая библиотека в вашем приложении может быть так ». Есть что-то в этом роде? – SilentStorm

+0

Это код C#, связанный с компоновщиком _mono_. – Cheesebaron