无法在 xamarin.forms 上运行 XAMARIN UI TEST,错误 System.Exception

Posted

技术标签:

【中文标题】无法在 xamarin.forms 上运行 XAMARIN UI TEST,错误 System.Exception【英文标题】:Cannot run XAMARIN UI TEST on xamarin.forms, error System.Exception 【发布时间】:2018-09-10 09:34:47 【问题描述】:

我想运行 Xamarin UI 测试,但是当我运行测试时出现此错误:

System.Exception : 'The running adb server is incompatible with the android SDK version in use by UITest: 
C:\Program Files (x86)\Android\android-sdk

我的启动命令行: return ConfigureApp.Android.ApkFile("/Users/Jerem/source/repos/App4/App4/App4.Android/bin/Debug/com.companyname.App4-Signed.apk").StartApp();

感谢我们的帮助

【问题讨论】:

你用的是什么安卓SDK?? @Woj 我使用 SDK 27 Xamarin.UITest 怎么样? 上一个版本,2.25..对于nunit包,我没碰过,基本的放了 我找到了 platform-tools.old****,我删除了这个 【参考方案1】:

如果你有同样的错误,请检查我们的sdk目录如果你有platform-tools和platform-tools.oldxxxx,删除旧的!干完活

【讨论】:

我不得不恢复到 .old 并删除较新的版本。【参考方案2】:

Y Nakamura 的回答让我朝着正确的方向前进,但我仍然需要很长时间才能解决,因为我不确定我到底要解决什么问题。我将在这里扩展答案,以防其他人遇到与我相同的问题。

如前所述,问题似乎是由 Xamarin.UITest 不支持的平台工具中的文件(不确定是 adb.exe 还是其他文件)引起的。 platform-tools 可以在 C:\Program Files (x86)\Android\android-sdk

中找到

我有 platform-tools 文件夹,以及另外两个带有 old12341234 后缀的文件夹(这些数字对我来说没有任何意义)。

要找出每个文件夹中的 adb.exe 版本:

    打开其中一个文件夹 在 Windows 资源管理器窗口中按住 shift 并右键单击以查看在此处打开 PowerShell 窗口选项 在 PowerShell 中,运行命令 ./adb.exe version 以查看您正在运行的版本号

就我而言,太新的版本是 1.0.40。我找到了一个包含 1.0.39 的文件夹。我重命名了对 platform-toolsTooNew 来说太新的 platform-tools 文件夹。然后我将包含 adb.exe v 1.0.39 的文件夹重命名为 platform-tools,然后重新启动 Visual Studio。

做完所有这些之后,我的自动化测试又一次成功了!

2020 年 11 月更新

我能够使用更新版本的 ADB 运行,但我不得不从我的 android-sdk 文件夹中删除 old 文件夹。我正在使用:

ADB 版本 1.0.41 Visual Studio 16.6.5 Xamarin 16.6.000.1064 Xamarin.Android SDK 10.3.1.4

我会保留我原来的帖子,以防它帮助其他人。

【讨论】:

版本实际上是 1.0.40 和 1.0.39 而不是 1.40 和 1.39。 谢谢,我修好了。 希望 Xamarin.UITools 能告诉我们它到底想要哪一个【参考方案3】:

Android SDK Platform-Tools 28.0.0 (40) 太新了。尝试恢复 27.0.1 (39)。打开文件夹%ANDROID_HOME%。如果出现platform-toolsplatform-tools.oldxxxx文件夹,重命名恢复旧版本。

【讨论】:

以上是关于无法在 xamarin.forms 上运行 XAMARIN UI TEST,错误 System.Exception的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms App MediaRecorder 无法在佳宇 S3 上运行

从导航堆栈中删除页面 - xamarin.forms

如何删除 Xamarin.Forms 导航栏?

无法确定 Xamarin Forms 应用程序是在模拟器中还是在设备上运行

Xamarin.Forms 与 Net.Http [关闭]

Xamarin表单,在Visual Studio Android Emulator上运行的应用程序但在真实设备上崩溃