Xamarin Android axml Designer, System.ArgumentNullException: значение не может быть нулевым

Примечание. Это происходит с самой последней версией Visual Studio Mac и установленными последними инструментами Xamarin.

Я начал работать над более старым проектом Xamarin Android, который поддерживал последние несколько лет. Прошло много времени с тех пор, как я вносил какие-либо изменения в пользовательский интерфейс приложения, и мне потребовалась небольшая корректировка, чтобы добавить дополнительную информацию на экран. Я открыл макет экрана axml, который мне нужно было изменить. При этом в представлении конструктора отображалась следующая ошибка:

System.ArgumentNullException: значение не может быть нулевым. Имя параметра: путь1 в System.IO.Path.Combine (System.String path1, System.String path2, System.String path3) [0x0002a] в / Users / builder / data / lanes / 4992 / mono-mac-sdk / external /bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Path.cs:849 в Xamarin.AndroidDesigner.DesignerProject + ‹> c.b__118_0 (System.String l) [0x00000] в / Users / vsts / агент / 2.126.0 / work / 1 / s / Xamarin.Designer.Android / Xamarin.AndroidDesigner / Xamarin.AndroidDesigner / DesignerProject.cs: 532 в System.Linq.Enumerable + SelectListIterator2[TSource,TResult].MoveNext () [0x00036] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/external/corefx/src/System.Linq/src/System/Linq/Select.cs:365 at System.Linq.Enumerable+WhereEnumerableIterator1 [TSource] .MoveNext () [0x0004e] в /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/external/corefx/src/System.Linq/src/System/Linq/Where.cs:146 в системе .Linq.Enumerable + SelectManySingleSelectorIterator2[TSource,TResult].ToList () [0x0002d] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/external/corefx/src/System.Linq/src/System/Linq/SelectMany.cs:257 at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable1 [T] source) [0x00015] в / Users / builder / data / lanes / 4992 / mono-mac-sdk / external / bockbuild / builds / mono-x64 / external / corefx / src / System. Linq / src / System / Linq / ToCollection.cs: 30 в Xamarin.AndroidDesigner.DesignerProject.GetLibraryProjec tThemes () [0x00037] в /Users/vsts/agent/2.126.0/work/1/s/Xamarin.Designer.Android/Xamarin.AndroidDesigner/Xamarin.AndroidDesigner/DesignerProject.cs:531 в Xamarin.AndroidDesigner.Designer. GetIsProjectTheme (System.String themeName) [0x0000e] в /Users/vsts/agent/2.126.0/work/1/s/Xamarin.Designer.Android/Xamarin.AndroidDesigner/Xamarin.AndroidDesigner/DesignerProject.cs:544 в Xamarin. AndroidDesigner.DesignerSessionParams.GetData (сеанс Xamarin.AndroidDesigner.AndroidDesignerSession, Xamarin.AndroidDesigner.AndroidRenderSession renderer) [0x00154] в /Users/vsts/agent/2.126.0/work.DesignAndroids/Xamesign.Androidsign /Xamarin.AndroidDesigner/DesignerSessionParams.cs:209 в Xamarin.AndroidDesigner.AndroidRenderSession + d__115.MoveNext () [0x00224] в /Users/vsts/agent/2.126.0/work/1/s/Xamarin.Designer.Xamarin.Designer. .AndroidDesigner / Xamarin.AndroidDesigner / AndroidRenderSession.cs: 783

Сначала я подумал, что с новыми инструментами Xamarin должна быть какая-то проблема с синтаксисом, но когда я попытался создать новый макет Android, я получил ту же ошибку для дизайнера. Новый макет Xamarin Android выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Из-за этого я думаю, что должен быть какой-то вариант настройки, который мне не хватает из-за того, что это более старый проект. Возможно, что-то связано с неправильным назначением пути к инструменту дизайнера? Кто-нибудь сталкивался с этой ошибкой или есть идеи, что проверить?

Изменить: Дополнительная информация Расположение Android SDK:

/ Пользователи / mrnope / Библиотека / Разработчик / Xamarin / android-sdk-macosx

Расположение Android NDK:

/ Пользователи / mrnope / Библиотека / Разработчик / Xamarin / android-ndk / android-ndk-r14b

Java SDK (JDK) Расположение:

/ usr

Файлы найдены Инструменты SDK для Android:  Android SDK Tools Платформы SDK: Платформы SDK


person Timothy    schedule 31.01.2018    source источник
comment
У меня такая же проблема ... Перепробовала абсолютно все. Иногда я могу заставить его работать временно, если я удалю все пакеты библиотеки поддержки (что означает, что я не могу создать проект, потому что он зависит от них). Как только я добавляю их повторно или пытаюсь создать проект, я снова получаю то же исключение.   -  person LucasJay    schedule 01.02.2018


Ответы (1)


Скорее всего, Visual Studio не может найти правильный путь к Android SDK и / или инструменты платформы.

Инструменты -> Вариант -> Настройки Android

И вставьте туда правильный путь, тогда я бы дважды проверил, что инструменты платформы установлены правильно и находятся в той же версии SDK.

Инструменты -> Android -> Android SDK Manager

person Hichame Yessou    schedule 31.01.2018
comment
Я смотрел на них, но, насколько я могу судить, все выглядит правильно. Я добавил дополнительную информацию и скриншоты из просмотра этой информации. - person Timothy; 01.02.2018
comment
Обновите Android SDK Tools до версии 27 - person Hichame Yessou; 01.02.2018
comment
У меня установлены последние инструменты сборки SDK. Я пытался переключить Android SDK Tools на версию 26.1.1, но это не имело значения. - person Timothy; 02.02.2018
comment
Не уверен, почему вы не можете выбрать версию 27. Но я предлагаю вам удалить Android SDK 27 и Build Tools 27 и выбрать Android SDK Tools до версии 26. У вас должна быть ТАКАЯ версия Android SDK, Build Tools и Tools. - person Hichame Yessou; 02.02.2018
comment
Насколько я могу судить по поиску, Android SDK Tools версии 27 не существует. Я переключил все, чтобы посмотреть на версию 26, удалил все другие версии, но изменений не было. - person Timothy; 02.02.2018