Android 调试失败 "Couldn't connect to logcat, GetProcessId returned: 0" FFImageLoading.Platform.dll.so 未找到

Android Debugging Failing With "Couldn't connect to logcat, GetProcessId returned: 0" FFImageLoading.Platform.dll.so Not Found

我在调试 Android 项目时遇到问题。我可以部署到设备并 运行 它,一切正常,但如果我尝试调试,应用程序会部署到设备并非常短暂地打开,启动画面出现,但应用程序随后关闭。

我在 Visual Studio 2015 上使用 Xamarin Forms。

设备是 运行ning Android Oreo (8.0.0)。另一台设备 运行ning Android 6.0.1 调试正常。

输出如下:

InspectorDebugSession(11): StateChange: Start -> EntryPointBreakpointRegistered
InspectorDebugSession(11): Constructed
Android application is debugging.
InspectorDebugSession(11): HandleTargetEvent: TargetExited
InspectorDebugSession(11): Disposed
Couldn't connect to logcat, GetProcessId returned: 0

我检查了 Logcat,发现 FFImageLoading 库似乎有问题:

Time    Device Name Type    PID Tag Message
09-18 14:35:52.361  Huawei Nexus 6P Debug   1560    Mono    AOT: 
image '/usr/local/lib/mono/aot-cache/arm/FFImageLoading.Platform.dll.so' 
not found: dlopen failed: library "/data/app/myapp.android.dev-
WEb1bz8edgF7vwx6uCoZ-A==/lib/arm/libaot-FFImageLoading.Platform.dll.so" not found

我已将 FFImageLoading 的 Nuget 包添加到我的项目中,Droid 项目参考如下图所示:

这是 known issue 奥利奥和 Xamarin Android 在 Visual Studio 上 Windows。它显然适用于 Visual Studio for Mac。它将在即将发布的版本中修复。同时,在上面的错误 link 底部附近有一个解决方法(评论 20)。

这对我有用:-

Deselecting the 'Use Shared Runtime' in Project Properties > Android Options > Packaging properties

我在 Android 8.1 和 Visual Studio 2017 15.7.4 中也遇到了这个问题。

需要三个步骤才能让它重新工作。

  1. 在 Android 选项下,转到高级并添加您的设备架构,在我的例子中是 x86_64。
  2. 转到工具 -> 选项 -> Xamarin > Android 设置并启用:为共享运行时和基础 class 库提供调试符号。
  3. 最后一步是从您的设备中删除以下应用程序:

    • 所有 Xamarin.Android API 支持库
    • Mono 共享运行时
    • 您的应用程序

完成这些步骤后,您无需禁用 "Use Shared Runtime" 并且可以更快地部署和调试。

另一个原因是,如果您没有在您的设备上启用 USB 调试,VS 2017 仍会识别您的 phone 并在您的 phone 上安装该应用程序。刚开始调试,会抛出这个错误,不继续调试。确保启用开发者模式 -> Usb 调试,如此处所述 https://docs.microsoft.com/en-us/xamarin/android/get-started/installation/set-up-device-for-development

  1. 在项目属性 > Android 选项中取消选择 'Use Shared Runtime'
  2. 从解决方案中删除 bin 和 obj 文件
  3. 清洁解决方案
  4. 重建有效的解决方案