2017-02-17 109 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