Xamarin.Forms icon indicating copy to clipboard operation
Xamarin.Forms copied to clipboard

[Bug] NullReferenceException in the XamlParser when initializing views

Open DomBerentsen opened this issue 1 year ago • 1 comments

Description

Our apps ocasionally crash because of a NullReferenceException in the XamlParser when initializing views. Something in the Xaml causes the s_xmlnsDefinitions List to be set to null again, and sometimes this happens while it is being used. This is only confirmed to happen on iOS.

Stacktrace:

{System.NullReferenceException: Object reference not set to an instance of an object at Xamarin.Forms.Xaml.XamlParser.GatherXmlnsDefinitionAttributes () [0x00042] in D:\a\1\s\Xamarin.Forms.Xaml\XamlParser.cs:357 at Xamarin.Forms.Xaml.XamlParser.GetElementType (Xamarin.Forms.Xaml.XmlType xmlType, System.Xml.IXmlLineInfo xmlInfo, System.Reflection.Assembly currentAssembly, Xamarin.Forms.Xaml.XamlParseException& exception) [0x0001d] in D:\a\1\s\Xamarin.Forms.Xaml\XamlParser.cs:374 at Xamarin.Forms.Xaml.Internals.XamlTypeResolver.TryResolve (Xamarin.Forms.Xaml.XmlType xmlType, System.Type& type) [0x00000] in D:\a\1\s\Xamarin.Forms.Xaml\XamlServiceProvider.cs:208 at Xamarin.Forms.Xaml.ExpandMarkupsVisitor+MarkupExpansionParser.Parse (System.String match, System.String& remaining, System.IServiceProvider serviceProvider) [0x001b2] in D:\a\1\s\Xamarin.Forms.Xaml\ExpandMarkupsVisitor.cs:183 at Xamarin.Forms.Xaml.ExpandMarkupsVisitor.ParseExpression (System.String& expression, System.Xml.IXmlNamespaceResolver nsResolver, System.Xml.IXmlLineInfo xmlLineInfo, Xamarin.Forms.Xaml.INode node, Xamarin.Forms.Xaml.INode parentNode) [0x000e4] in D:\a\1\s\Xamarin.Forms.Xaml\ExpandMarkupsVisitor.cs:106 at Xamarin.Forms.Xaml.ExpandMarkupsVisitor.Visit (Xamarin.Forms.Xaml.MarkupNode markupnode, Xamarin.Forms.Xaml.INode parentNode) [0x00037] in D:\a\1\s\Xamarin.Forms.Xaml\ExpandMarkupsVisitor.cs:51 at Xamarin.Forms.Xaml.MarkupNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00000] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:113 at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00044] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:152 at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00079] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:154 at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00079] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:154 at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00044] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:152 at Xamarin.Forms.Xaml.RootNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00079] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:211 at Xamarin.Forms.Xaml.XamlLoader.Visit (Xamarin.Forms.Xaml.RootNode rootnode, Xamarin.Forms.Xaml.HydrationContext visitorContext, System.Boolean useDesignProperties) [0x0002e] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:228 at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.String xaml, System.Reflection.Assembly rootAssembly, System.Boolean useDesignProperties) [0x000a2] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:104 at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.String xaml, System.Boolean useDesignProperties) [0x00000] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:77 at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.Type callingType) [0x00029] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:73 at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[TXaml] (TXaml view, System.Type callingType) [0x00000] in D:\a\1\s\Xamarin.Forms.Xaml\ViewExtensions.cs:37

Steps to Reproduce

We do not have a stable reproduction, it is a matter of timing. If we navigate back and forth to a view a lot it will sometimes cause the exception.

Expected Behavior

Initializing views should not cause crashes

Actual Behavior

Sometimes Initializing views causes a crash

Basic Information

Xamarin.forms: 5.0.0.2291

DomBerentsen avatar Dec 13 '23 14:12 DomBerentsen

Unfortunately without any reproduction or relevant code this will be pretty hard to diagnose or fix. Please let us know if you uncover any more details.

jfversluis avatar Feb 26 '24 13:02 jfversluis