xamarin - Xamarin Android Java 绑定:缺少类 (XMLReader)
问题描述
当我在 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 框架的 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>
可以在这里看到,但解析器没有找到任何东西,即使使用了不太细粒度的查询:
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?
解决方案
获得正确的程序集
- 在解决方案资源管理器中右键单击引用
- 选择添加引用...
- 选择装配选项卡
您只需要System.Xml
- 向下滚动并在“程序集”选项卡中找到System.Xml
- 选择它
- 按确定按钮
相对于 Visual Studio 文件夹的程序集的最常见路径:
...\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.dll
如果它显示多个具有相同名称的程序集,请不要担心,您可以选择其中任何一个。不要使用 GAC 或 nuget 包。始终查找与您的项目类型相对应的程序集,这始终位于Preference Manager中的“程序集”选项卡中。
在修复后尝试构建之前,清理项目或执行清理构建。
推荐阅读
- javascript - 无法更改所选选项背景颜色 | 反应选择
- android - Activity 在未决意图中创建了两次
- java - 变量中的Java字符串格式,如Python
- python - Python:获取过去 365 天和相应时间的三个硬币的价格,并将其存储在 pandas DataFrame 中,列为硬币名称和时间
- mysql - 查找该部门教师的最高薪水
- nlp - 如何查看训练后拥抱脸模型的变化?
- flutter - 为什么在 Flutter 中使用 firebase_messaging 插件在 ios 中没有收到通知?
- reactjs - 为什么 react 不调用 componentDidMount 函数?
- woocommerce - 如何根据选择的支付网关更新 WooCommerce 产品价格?
- python - 是否有任何具有可用内置模块的在线 Python IDE?