2017-02-17 110 views
1

我使用MvvmCross與Xamarin支持庫在我的項目,之後我更新MvvmCross從4.2.0版本到4.4.0和Xamarin支持包從23.3.0版本25.1.1 ,我無法執行該項目。該應用程序始終在SplashScreen中崩潰,並顯示錯誤:未找到類型爲MvvmCross.Platform.IoC.MvxPropertyInjector的默認構造函數。錯誤發生在調試模式和釋放模式下。默認的構造

我閃屏:

[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

我有現在同樣的問題,升級Java和Android的API發生後。對於初學者來說,不再有LinkerPleaseInclude.cs文件(當我添加mvvmcross時沒有添加),手動添加此代碼似乎沒有做任何事情(這是2年前同樣問題的解決方案)。試圖[此](http://stackoverflow.com/questions/23581846/xamarin-linker-default-constructor-not-found-for-type-cirrious-crosscore-ioc-m/)。我知道問題存在於程序集的鏈接中,但即使我將其設置爲不存在同樣的問題。 – SilentStorm

+0

從[更改日誌](https://developer.android.com/about/versions/nougat/android-7.0-changes.html):「在Android的7.0開始,該系統防止對非NDK庫動態鏈接的應用程序,這可能會導致您的應用程序崩潰,這種行爲變化旨在爲跨平臺更新和不同設備創建一致的應用程序體驗儘管您的代碼可能無法鏈接到私有庫,但您的應用程序中可能存在第三方靜態庫可以這樣做。「有什麼關於這個? – SilentStorm

+0

這是由_​​mono_鏈接器鏈接的C#代碼。 – Cheesebaron