xamarin.forms - 开箱即用的 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(稳定版)。
解决方案
我注意到 MainActivity.cs 的内容完全不同,这取决于 Android 项目是单独创建还是作为 Xamarin Forms 解决方案的一部分创建。此外,提供的 NuGet 也不同。因此,也许我试图做的,将 Android 应用程序添加到现有的 XF 解决方案中,根本是不允许的。
为了解决这个问题,我使用 Android 和 iOS 项目创建了一个空的 Xamarin Forms 解决方案,添加了一个进一步的空库项目,然后在 Finder 中将所有项目文件夹的内容(Android 文件夹除外)替换为相应文件夹的内容我的工作解决方案(带有工作 iOS 应用程序的解决方案)。
不过,迁移到 AndroidX 是个好主意。
推荐阅读
- vb.net - VB NET TreeNodeCheckChanged 事件不起作用
- r - 如何在 GA 包中正确声明适合性的 Function()?
- linux - 比较昨天创建的文件和今天创建的文件
- php - Oracle:如果存在于 Oracle 数据库中?
- python - .loc 切片 KeyError(f"[{key}] 中没有 [{axis_name}]")
- arrays - 给定一个有序数组和一个正整数 k,求区间 (100(i-1)/k, 100(i)/k] for 1 <= i <= k 的整数个数
- flutter - 如何在 Flutter 移动应用中将 Azure AD 用户登录到 Firebase?
- jquery - 在我的 laravel 项目中执行 ajax 请求后出现 404 错误。请帮助我
- kubernetes - Kubernetes 无法将 pod 列为用户
- python - 如何从文件夹中读取并保存在 Python 中的另一个文件夹中