Xamarin Android Java Binding: отсутствует класс (XMLReader) - PullRequest
0 голосов
/ 17 мая 2018

Некоторые предупреждения появляются почти всегда, когда я работаю над проектом 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, а класс XMLReader из Android Framework.

Есть идеи направить процесс привязки в правильном направлении, четко указав, какой класс выбрать?Какое-то правило 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?

1 Ответ

0 голосов
/ 02 июня 2018

Для правильной сборки

  1. В Обозреватель решений Щелкните правой кнопкой мыши Ссылки
  2. Выбрать Добавить ссылки ...
  3. Выбрать Сборки Вкладка

Все, что вам нужно, это System.Xml

  1. Прокрутите вниз и найдите System.Xml in Сборки Вкладка
  2. Выберите
  3. Нажмите ОК Кнопка

Наиболее распространенный путь к сборке относительно папки Visual Studio:

...\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.dll

Если он показывает несколько сборок с одинаковым именем, не беспокойтесь, вы можете выбрать любую из них. Не используйте GAC или пакет nuget. Всегда ищите сборки, соответствующие типу вашего проекта, который всегда находится на вкладке Сборки в Диспетчер предпочтений .

Перед попыткой сборки после исправления очистить проект или выполнить очистку . .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...