0
Xamarin Forms AppでGrial UI Kitを使用しています。私はmentioned here両方のiOSの指示に従っています& Android。 iOSではうまく動作します。 Androidの場合、Colors.ttファイルの2行目にエラーが発生します。Xamarin Forms with Grial UIキットのXML解析エラー
Colors.ttファイルは、以下のコードがあります: "XML" <#@出力延長=#>
エラーメッセージ:エラーがライン#2にスローされ
<#@ template language="C#" hostspecific="True" #>
<#@ output extension=".xml" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Drawing" #>
<#@ assembly name="System.Xml" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Drawing" #>
<#@ import namespace="System.Globalization" #>
<#@ import namespace="System.Text.RegularExpressions" #>
<#@ assembly name="System.Windows" #>
<#@ import namespace="System.Windows" #>
<#
string path = Host.ResolvePath("../../../PCLFolderName/App.xaml");
XmlDocument doc = new XmlDocument();
doc.Load(path);
Dictionary<string, Color> knownColors = new Dictionary<string, Color>();
List<string> exports = new List<string>();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("artina", "clr-namespace:UXDivers.Artina.Shared;assembly=UXDivers.Artina.Shared");
nsmgr.AddNamespace ("xamarin", "http://xamarin.com/schemas/2014/forms");
XmlNode resources = doc.DocumentElement.SelectSingleNode("/xamarin:Application/xamarin:Application.Resources/xamarin:ResourceDictionary", nsmgr);
if (resources != null) {
foreach (XmlNode node in resources.ChildNodes) {
if (node.NodeType == XmlNodeType.Comment) {
var comment = node.InnerText.Trim();
Match match = Regex.Match(comment, @"Export\s([A-Za-z0-9\-]+)$", RegexOptions.IgnoreCase);
if (match.Success)
{
exports.Add (match.Groups[1].Value);
}
}
else if (node.Name == "Color") {
string colorName = null;
foreach (XmlAttribute attribute in node.Attributes) {
if (attribute.LocalName == "Key") {
colorName = attribute.Value;
var colorDefinition = node.InnerText.Trim();
Color color;
if (colorDefinition.StartsWith ("#")) {
if (colorDefinition.Length == 7) {
colorDefinition = "FF" + colorDefinition;
}
int argb = Int32.Parse (colorDefinition.Replace ("#", ""), NumberStyles.HexNumber);
color = Color.FromArgb (argb);
} else {
color = Color.FromName (colorDefinition);
string colorString = string.Format("#FF{0:X2}{1:X2}{2:X2}",
color.R, color.G, color.B);
color = System.Drawing.ColorTranslator.FromHtml(colorString);
}
knownColors.Add (colorName, color);
}
}
}
}
}
if (exports.Count > 0){
#>
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<!-- Artina Exported Colors -->
<#
foreach(var name in exports){
Color color;
if (knownColors.TryGetValue(name, out color)){
#>
<color name="<#= name #>">#<#= color.A.ToString("X2") #><#= color.R.ToString("X2") #><#= color.G.ToString("X2") #><#= color.B.ToString("X2") #></color>
<#
}
}
#>
</resources>
<#
}
#>
を次のとおりです。
XMLをパースエラー:整形式ではない(無効なトークン)
はanybを持っていますああ、これに前に直面した?どんな解決策やコメントも感謝しています。
ありがとうございました。 ノエル
PS:
- 開発は、Mac上でVS2015 + Xamarin VS +のWindows 10を使用して行われます。
- すべてのSDKが更新されました。