MvxAndroidApplication не может быть найден - PullRequest
0 голосов
/ 21 мая 2018

Я успешно выполнил учебное пособие по началу работы для MvvmCross.Однако, когда я попытался создать новый проект на другом компьютере, следуя этому руководству в качестве руководства, я не смог его скомпилировать.Проект "Core" (стандартная библиотека) в порядке;но когда я создаю новый проект Android Xamarin и определяю MainApplication (который должен наследоваться от MvxAndroidApplication<MvxAndroidSetup<App>, App>), два имени Mvx не могут быть найдены.

Конечно, я очень тщательно следовал всем инструкциям официального руководства, а это значит, что я установил самую последнюю (6.0.1) версию MvvmCross с NuGet.Я убрал это и восстановил это.Я даже исследовал сборку MvvmCross, которая входит в комплект, но в ней полностью отсутствует пространство имен MvvmCross.Platforms, которое должно содержать два класса, которые я упомянул выше.

Мне кажется очевидным, что во втором компьютере что-то отсутствует или неправильно настроено.Я понятия не имею, что, хотя.Одна вещь, которая бросилась в глаза, это то, что если я пытаюсь добавить ссылку на Mono.Android, она указывается как версия 0.0.0.0.

Как я могу решить эту проблему?Что я должен проверить, что я, возможно, пропустил?

Ответы [ 2 ]

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

Это не помогло, у кого-нибудь еще есть идеи, как решить эту проблему?Это произошло после обновления MvvmCross с v5.6.3 до v6.1.2.Я изменил наследование от Setup.cs до MvxAppCompatApplication<MvxAppCompat<App>,App> и мне нужно было установить пакет MvvmCross.Droid.Support.V7.AppCompat nuget для этого, но он выдает мне эту ошибку.

0 голосов
/ 23 мая 2018

Я нашел решение сам.Это включает одно недокументированное требование и одно странное поведение Visual Studio (у него, конечно, есть веская причина, но я не знаю, что это), поэтому я оставляю это здесь для справки.

Чтобы использовать MvvmCross в проекте Xamarin для Android, необходимо настроить таргетинг на (Mono) Android 8.1. Я не уверен, что это означает "самая последняя версия Android" или если 8.1 имеетчто-то особенное.В любом случае, пакет NuGet для MvvmCross включает в себя соответствующую DLL для цели monoandroid81: если ваш проект скомпилирован для чего-то другого (даже Mono Android 8.0), тогда NuGet добавит ссылку для netstandard20, и эта DLL, конечно, сделаетне включать ничего в пространство имен Platforms.

После того, как вы изменили место назначения сборки в настройках проекта, вы должны как минимум выгрузить и перезагрузить проект .Или вы можете закрыть решение, но проект действительно все, что нужно. Этот шаг необходим , чтобы получить правильную целевую платформу в Visual Studio.Чтобы перепроверить его, откройте окно Add reference и просмотрите список «Framework»: в верхней части списка сборки вы найдете ярлык, показывающий, какая текущая целевая платформа.На этом ярлыке должен отображаться «MonoAndroid 8.1»;если это не так, проверьте настройки проекта, а затем перезагрузите проект.

...