Примечание. Это происходит с самой последней версией 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 + SelectListIterator
2[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+WhereEnumerableIterator
1 [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.IEnumerable
1 [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