Приложение Xamarin Android из коробки показывает undefined Android .Support, Android .Views, Android .Content в MainActivity - PullRequest
1 голос
/ 08 мая 2020

Мне нужно было перестроить мое довольно древнее приложение Xamarin Forms с нуля, и в процессе я пришел к ситуации, когда у меня было новое работающее приложение iOS, но мне нужно было удалить черновик Android приложения и запустить его снова. Итак, в качестве следующего шага я добавил проект приложения vanilla Android из коробки и сразу же увидел, что (в MainActivity) Android .Support, Android .Views и Android .Content были undefined с wiggy красные линии внизу - например, в ссылке на Android .Support.V7.Widget.Toolbar.

Пытаясь решить проблему, я установил каждую из Target Framework, Minimum Android Version и Target Android Версия до Android 9.0 P ie (уровень API 28). В SDK Manager я проверил, что Android SDK Location и Java SDK Location были «Найдены» и что Android SDK Platform 28 была установлена.

Следующие NuGets были установлены вместе с проектом, я удалил их и переустановили (удалив промежуточные папки bin / obj): Xamarin. Android .Support.Core.Utils, Xamarin. Android .Support.CustomTabs и Xamarin. Android .Support.Design.

Я пробовал установить NuGets Xamarin. Android .Support.v7. *. И я добавил NuGet Xamarin.Forms. Я попытался добавить объявления об использовании.

Ничего из этого не помогло.

Для сравнения я отдельно установил пустое приложение Android - оно отлично работало из коробки.

Android довольно ново для меня - буду благодарен за предложения по исправлению этого.

В приложении есть проект. NET Standard 2.0, проект iOS, ( vanilla) Android (все три с Xamarin Forms) и. NET Стандартный проект библиотеки 2.0.

Я использую Visual Studio для Ma c V8.5.4 (стабильный) на MacOS 10.15.3.

Ответы [ 2 ]

2 голосов
/ 08 мая 2020

Я заметил, что содержимое MainActivity.cs сильно различается в зависимости от того, создается ли проект Android отдельно или как часть решения Xamarin Forms. Также предоставленные NuGet отличаются. Так что, возможно, то, что я пытался сделать, добавление приложения Android к существующему решению XF, просто недопустимо.

Чтобы исправить проблему, я создал пустое решение Xamarin Forms с Android и iOS проектов, добавил еще один пустой проект библиотеки, затем в Finder заменил содержимое всех папок проекта, кроме Android, содержимым соответствующих папок в моем рабочем решении (тот, у которого есть рабочий iOS app).

Тем не менее, переход на AndroidX - хорошая идея.

1 голос
/ 08 мая 2020

Не знаю, поможет ли это, но тем не менее вам следует перейти на AndroidX как можно скорее. Xamarin имеет перенесено на них , начиная с Forms 4.5

Вот еще немного информации о библиотеках - Представляем AndroidX для Xamarin

Есть специальный пакет NuGet для миграции - Xamarin.AndroidX.Migration . Также доступна встроенная функциональность в Visual Studio - здесь

Я могу предложить вам попробовать перейти на библиотеки AndroidX, поскольку старые библиотеки поддержки не будут поддерживаться с этого момента. включен, и вы наверняка столкнетесь с некоторыми проблемами, если они не такие, как эта, то в будущем появится что-то еще.

...