Android调试失败"无法连接到logcat,GetProcessId返回:0" FFImageLoading.Platform.dll.so未找到

时间:2017-09-18 22:51:48

标签: xamarin.forms xamarin.android android-6.0-marshmallow android-8.0-oreo ffimageloading

我有调试Android项目的问题。我可以部署到设备并运行它,一切正常但如果我尝试调试,应用程序将部署到设备并且非常短暂地打开,启动屏幕会显示但应用程序会关闭。

我在Visual Studio 2015上使用Xamarin Forms。

设备正在运行Android Oreo(8.0.0)。运行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项目参考显示如下图所示:

enter image description here

5 个答案:

答案 0 :(得分:10)

这对我有用: -

  

在项目属性中取消选择“使用共享运行时”> Android的   选项>包装属性

答案 1 :(得分:5)

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

通过三个步骤可以使其重新运行。

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

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

完成这些步骤后,您无需禁用“使用共享运行时”,并且可以更快地进行部署和调试。

答案 2 :(得分:1)

这是在Visual Studio for Windows上使用Oreo和Xamarin Android的known issue。它显然适用于Visual Studio for Mac。它将在即将发布的版本中修复。与此同时,在上面的bug链接底部附近有一个工作(评论20)。

答案 3 :(得分:1)

  1. 在“项目属性”>“ Android选项”中取消选择“使用共享运行时”
  2. 从解决方案中删除bin和obj文件
  3. 清洁溶液
  4. 重建有效的解决方案

答案 4 :(得分:0)

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