首页 > 解决方案 > 开箱即用的 Xamarin Android 应用在 MainActivity 中显示未定义的 Android.Support、Android.Views、Android.Content

问题描述

我需要从头开始重建我相当古老的 Xamarin Forms 应用程序,在此过程中,我遇到了一个新的工作 iOS 应用程序但需要删除草稿 Android 应用程序并重新启动它的情况。因此,作为下一步,我添加了一个开箱即用的普通 Android 应用程序项目,我立即看到(在 MainActivity)Android.Support、Android.Views 和 Android.Content 未定义,下方有假红线 - 例如在对 Android.Support.V7.Widget.Toolbar 的引用。

为了解决这个问题,我将 Target Framework、Minimum Android Version 和 Target Android Version 分别设置为 Android 9.0 Pie (API Level 28)。在 SDK 管理器中,我检查了 Android SDK Location 和 Java SDK Location 是否已“找到”,并且安装了 Android SDK Platform 28。

以下 NuGet 随项目一起安装,我删除它们并重新安装它们(删除它们之间的 bin/obj 文件夹):Xamarin.Android.Support.Core.Utils、Xamarin.Android.Support.CustomTabs 和 Xamarin.Android.Support。设计。

我尝试安装 NuGets Xamarin.Android.Support.v7.*。我添加了 Xamarin.Forms NuGet。我尝试添加“使用”声明。

这些都没有帮助。

为了比较,我单独安装了一个空白的 Android 应用程序解决方案——它开箱即用。

Android 对我来说相当新 - 将不胜感激有关解决此问题的建议。

该应用程序有一个 .NET Standard 2.0 项目、一个 iOS 项目、一个(vanilla)Android 项目(这三个项目都带有 Xamarin Forms)和一个 .NET Standard 2.0 库项目。

我在 MacOS 10.15.3 上使用 Visual Studio for Mac V8.5.4(稳定版)。

标签: xamarin.formsxamarin.android

解决方案


我注意到 MainActivity.cs 的内容完全不同,这取决于 Android 项目是单独创建还是作为 Xamarin Forms 解决方案的一部分创建。此外,提供的 NuGet 也不同。因此,也许我试图做的,将 Android 应用程序添加到现有的 XF 解决方案中,根本是不允许的。

为了解决这个问题,我使用 Android 和 iOS 项目创建了一个空的 Xamarin Forms 解决方案,添加了一个进一步的空库项目,然后在 Finder 中将所有项目文件夹的内容(Android 文件夹除外)替换为相应文件夹的内容我的工作解决方案(带有工作 iOS 应用程序的解决方案)。

不过,迁移到 AndroidX 是个好主意。


推荐阅读