我一直收到这个错误,我基本上已经复制了this tutorial的所有代码,所以我不明白它为什么不在这里工作。
namespace BHASIVCBULLETIN1 {
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
public partial class App : global::Xamarin.Forms.Application {
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
private void InitializeComponent() {
--> this.LoadFromXaml(typeof(App));
}
}
}
以上是错误代码,它是在运行时生成的。
<?xml version="1.0" encoding="UTF-8"?>
<p:ListDataPage xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:p="clr-namespace:Xamarin.Forms.Pages;assembly=Xamarin.Forms.Pages"
x:Class="BHASIVCBULLETIN1.LinkerPage"
Title="Sessions" StyleClass="Events">
<p:ListDataPage.DataSource>
<p:JsonDataSource Source="http://demo3143189.mockable.io/sessions" />
</p:ListDataPage.DataSource>
这是链接器页面代码
using System;
using System.Collections.Generic;
using Xamarin.Forms.Pages;
using Xamarin.Forms;
namespace BHASIVCBULLETIN1
{
public partial class LinkerPage : Xamarin.Forms.Pages.ListDataPage
{
public LinkerPage()
{
InitializeComponent();
}
}
}
这是我的主要应用程序c#code
using Xamarin.Forms;
using System.Collections.Generic;
namespace BHASIVCBULLETIN1 {
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new LinkerPage());
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
这是我的主要应用程序的xml代码
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:mytheme="clr-namespace:Xamarin.Forms.Themes;assembly=Xamarin.Forms.Theme.Dark"
x:Class="BHASIVCBULLETIN1.App">
<Application.Resources>
<!-- Application resource dictionary -->
<ResourceDictionary MergedWith="mytheme:DarkThemeResources" />
<!-- above xml code rferences the datapages nuget packages and resources that allow the methods to be used to create the GUI-->
</Application.Resources>
</Application>
答案 0 :(得分:1)
我遇到了同样的问题,并且还明确遵循了说明。
看起来:
<ResourceDictionary MergedWith="mytheme:DarkThemeResources"/>
以某种方式失败并导致App对象未定义。
我开始认为这是Xamarin.Forms中的一个错误。需要解决的问题。我的理解是它是一个“预发布”版本,所以它可能仍然不可靠。
更多... 我使用由Xamarin新的空交叉平台模板创建的默认引用,使用NEW空Xamarin表单项目(VS2015)测试了主题功能。这引用了Xamarin.Forms和Xamarin.forms.pages版本2.3.0.38-pre2(在我的例子中)。主题与这些参考文献一起使用。
在对表格和页面(2.3.3.168)应用最新的Nuget更新后,主题预览不再有效并再现您指出的相同错误。在我看来,Xamarin.Forms.Themes根本不适用于最新发布的Xamarin组件。
答案 1 :(得分:0)
不确定这是否是拼写错误但标签<p:ListDataPage>
未关闭
答案 2 :(得分:0)
在更新到Xamarin.Forms.Themes 1.0.0.43-pre1
后,我还遇到了使用Xamarin.Forms 2.3.3.168
时崩溃的应用。这仅适用于Android,因此我不确定此问题是否也会在iOS或WP版本上发生。我从它工作正常的Xamarin.Forms 2.3.3.152-pre2
升级了。
<prism:PrismApplication xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="clr-namespace:Prism.Unity;assembly=Prism.Unity.Forms"
xmlns:mytheme="clr-namespace:Xamarin.Forms.Themes;assembly=Xamarin.Forms.Theme.Light"
x:Class="myApp.App">
<Application.Resources>
<!-- Xamarin.Forms.Themes 1.0.0.43-pre1 is broken with Xamarin.Forms 2.3.3.168 -->
<!--<ResourceDictionary MergedWith="mytheme:LightThemeResources">-->
<ResourceDictionary>
<!-- theme definitions -->
</ResourceDictionary>
</Application.Resources>
</prism:PrismApplication>
我的解决方案目前是删除对{Xamarin.Forms.Theme的"MergedWith"
引用,直到修复程序发布。或者,将XF版本回滚到与Themes包兼容的版本。