【发布时间】:2018-01-01 19:12:26
【问题描述】:
我升级了一个 xamarin 表单应用程序以使用 prism 7。当应用程序启动(android 项目)时,它在此行崩溃
public App(IPlatformInitializer initializer = null) : base(initializer) { }
错误是
System.ArgumentNullException: Value cannot be null.
Parameter name: path1
预发行版以及 myget 的当前最新版本会发生这种情况:7.0.0.343-ci。
prism 6.3 没有出现这个错误。
App.xaml.cs:
using Prism;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Ninject;
using SunBaseApp.Helpers;
using Xamarin.Forms;
[assembly: Xamarin.Forms.Xaml.XamlCompilation(Xamarin.Forms.Xaml.XamlCompilationOptions.Compile)]
namespace SunBaseApp
{
public partial class App : PrismApplication
{
public App() : this(null) { }
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override async void OnInitialized()
{
InitializeComponent();
await NavigationService.NavigateAsync("/NavigationPage/LoginPage");
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
var cont = containerRegistry.GetKernel();
cont.Bind<IAppSettings>().To<AppSettings>().InSingletonScope();
cont.Bind<IDataService>().To<DataService>().InSingletonScope();
containerRegistry.RegisterForNavigation<NavigationPage>();
containerRegistry.RegisterForNavigation<LoginPage, LoginPageModel>();
containerRegistry.RegisterForNavigation<MainPage, MainPageModel>();
containerRegistry.RegisterForNavigation<SettingsEditPage, SettingsEditPageModel>();
containerRegistry.RegisterForNavigation<StatPage, StatPageModel>();
containerRegistry.RegisterForNavigation<WebsiteListPage, WebsiteListPageModel>();
containerRegistry.RegisterForNavigation<WebsiteEditPage, WebsiteEditPageModel>();
}
}
}
App.xaml:
<?xml version="1.0" encoding="utf-8" ?> <prism:PrismApplication xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:prism="clr-namespace:Prism.Ninject;assembly=Prism.Ninject.Forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="SunBaseApp.App">
<Application.Resources>
<ResourceDictionary>
<Color x:Key="WindowBackgroundColor">#97D3F3</Color>
<Color x:Key="ButtonBackgroundColor">Green</Color>
<Color x:Key="ButtonTextgroundColor">White</Color>
<Color x:Key="textColor">Black</Color>
<Style TargetType="Button">
<Setter Property="BackgroundColor" Value="{DynamicResource ButtonBackgroundColor}" />
<Setter Property="TextColor" Value="{DynamicResource ButtonTextgroundColor}" />
</Style>
<!--<Style TargetType="NavigationPage">
<Setter Property="BarBackgroundColor" Value="Red"/>
<Setter Property="BarTextColor" Value="Green"/>
</Style>-->
<!--<Style TargetType="NavigationPage">
<Setter Property="BarBackgroundColor" Value="{DynamicResource ButtonBackgroundColor}" />
</Style>-->
</ResourceDictionary> </Application.Resources>
</prism:PrismApplication>
主要活动:
using Android.App;
using Android.Content.PM;
using Android.OS;
using Acr.UserDialogs;
using Prism;
using Prism.Ioc;
namespace SunBaseApp.Droid
{
[Activity(Label = "SunBaseApp", Icon = "@drawable/icon2", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
ToolbarResource = Resource.Layout.toolbar;
TabLayoutResource = Resource.Layout.tabs;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App(new AndroidInitializer()));
UserDialogs.Init(this);
}
public class AndroidInitializer : IPlatformInitializer
{
public void RegisterTypes(IContainerRegistry containerRegistry)
{
}
}
}
}
非常感谢任何想法。
【问题讨论】:
标签: xamarin.forms prism