我正在使用安装了所有更新(版本 17.5.1)的 Visual Studio 2022 在全新的 Windows 11 Pro 系统上创建 Xamarin 项目。为此,我需要在 Android 模拟器中测试和调试我的 Android 应用程序。我在 Visual Studio 安装程序中为此选择了所有内容。 在我对该问题的研究过程中,我还验证了 Hyper-V 和 HypervisorPlatform-Feature 并已安装和启用,以及 Android Emulator Hypervisor 驱动程序 Tool/Extra 是通过 Android SDK 和工具程序安装的。我还使用当前最新的 API (Android 13 - API 33) 在 Android 设备管理器中设置了一个设备,可以启动它。
实际上发生了什么: 我启动 Visual Studio,加载我的项目并等待所有内容加载完毕并且后台任务也完成(不知道是否需要这样做)。确认我使用的是调试配置文件后,我单击“播放”按钮。模拟器启动并正确加载。至少看起来像。 Visual Studio 还构建项目并声明
Deploy succeeded
。
Visual Studio 中输出窗格的输出证实了这一点:
Build succeeded.
Deployment was successful to pixel_5_-_api_33.
========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========
就是这样。什么都没有发生了。 Visual Studio 停止调试,应用程序未部署到模拟设备。它不会出现在应用程序列表中。 当我通过 cmd 检查
adb devices
时,模拟器已连接。
清理项目并删除 bin 和 obj 文件夹也无济于事。
编辑: 还有两个信息:1. 使用默认模板开始一个新项目。 2. “Xamarin Diagnostics”的输出就是这三行
[I:]: Tracking android devices started
[I:]: Got new device list from adb with 1 devices
[I:]: Looking for Android SDK...
在这个问题花费了我很多时间之后,以下是为我解决问题的方法:
从存储库中检查了最后一个工作版本。
将目标版本更改为 Android 13 - Api 33。该应用程序构建并启动但由于过时的第 3 方库而崩溃 - 但这没关系,因为它实际上启动了!
逐步更新第 3 方库。将 Xamarin.Google.Android.Material 更新到版本 1.8.0(之前为 1.2.1.1)时,出现以下编译错误:
error: MainActivity is not abstract and does not override abstract method onNavigationItemSelected(MenuItem) in OnItemSelectedListener
所以我将 MainActivity 类抽象了。该方法已经存在。 Et voila - 应用程序不再像以前那样启动了。
我检查了新应用程序的外观。它看起来像在我的项目中。没有抽象或覆盖的东西。它也在使用该库,但版本为 1.0.0.1。所以我之前尝试了所有小版本。 1.8 之前的所有较新版本都有相同的错误。当我将新项目更新到最新版本时,它确实有效...... 多对比了一下,发现新项目是用
using Google.Android.Material.BottomNavigation;
而我的正在使用
Android.Support.Desgin.Widget
。所以我换了一个:问题解决了!