2017-02-17 2 views
1

내 프로젝트에서 MvvmCross 및 Xamarin Support 라이브러리를 사용하고 있고 버전 4.2.0에서 4.4.0으로 MvvmCross를 업데이트하고 버전 23.3.0에서 25.1.1로 Xamarin Support Packages를 업데이트 한 후 , 나는 프로젝트를 실행할 수 없다. 오류가있는 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(); 
} 

에만 반사를 통해 호출되는 코드를 버리지 않는 링커에 대한 다른 힌트를해야 할 수도 있습니다.

+0

지금 자바와 안드로이드 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가 아닌 라이브러리와 동적으로 링크하지 못하게합니다. 이로 인해 앱이 다운 될 수 있습니다.이 변경 사항은 플랫폼 업데이트 및 다양한 기기에서 일관된 앱 환경을 만드는 것을 목표로합니다. 코드가 비공개 라이브러리와 연결되지 않을 수도 있지만 앱의 제 3 자 정적 라이브러리 그렇게 할 수 있습니다. " 이것에 뭔가있어? – SilentStorm

+0

이 코드는 _mono_ 링커에서 링크 된 C# 코드입니다. – Cheesebaron

관련 문제