当我使用Xamarin.Android项目并使用Java绑定库时,我几乎总是会遇到一些警告。我收到以下警告:
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method CreateFromXml in managed type Android.Content.Res.ColorStateList.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method CreateFromXml in managed type Android.Content.Res.ColorStateList.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method ParseBundleExtras in managed type Android.Content.Res.Resources.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method CreateFromXml in managed type Android.Graphics.Drawables.Drawable.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method CreateFromXml in managed type Android.Graphics.Drawables.Drawable.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method CreateFromXmlInner in managed type Android.Graphics.Drawables.Drawable.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method CreateFromXmlInner in managed type Android.Graphics.Drawables.Drawable.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method Inflate in managed type Android.Graphics.Drawables.Drawable.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method Inflate in managed type Android.Graphics.Drawables.Drawable.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type
System.Xml.XmlReader in method ParseIntent in managed type Android.Content.Intent.
7>BINDINGSGENERATOR : warning BG8800: Unknown parameter type System.Xml.XmlReader in method ReadFromXml in managed type Android.Content.IntentFilter.
我的第一个想法是它缺少System.XML.XMLReader NuGet依赖项,但没有任何意义。我添加了依赖项,但没有用。
稍后,查看代码(例如android.content.Intent),我意识到在解析所需的类时,它会出错。它不是System.XML .Net框架,而是来自Android Framework的XMLReader类。
任何关于将绑定过程指向正确方向的想法,明确地说明要选择什么类?一些metadata.xml规则?感谢
编辑:我正在尝试这个:<attr path="/api/package[@name='android.content.res']/class[@name='Resources']/method[@name='parseBundleExtras']/parameter[0]"
name="type">android.content.res.XmlResourceParser</attr>
可以看到here,但解析器找不到任何东西,即使使用不太细粒度的查询:
Metadata.xml(15, 4) warning BG8A04: <attr path="/api/package[@name='android.content.res']/class[@name='Resources']"/> matched no nodes. Seems that I can't make that metadata changes in Android framework directly?
答案 0 :(得分:3)
获得正确的装配
您只需要 System.Xml
相对于Visual Studio文件夹的程序集的最常见路径:
...\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.dll
如果它显示多个具有相同名称的程序集,请不要担心,您可以选择其中任何一个。不要使用GAC或nuget包。始终查找与您的项目类型相对应的程序集,该项目类型始终位于首选项管理器中的程序集选项卡。
在修复后尝试构建之前, 清理 项目或执行 clean build 子>