【问题标题】:Xamarin.Android HttpClient Image Download SIGSEGV 11Xamarin.Android HttpClient 图像下载 SIGSEGV 11
【发布时间】:2016-10-11 22:37:45
【问题描述】:

我正在使用此代码从具有特定 url 的服务器下载图像:

double tmpProcessed = await Task.Run<double>(async () => {
            if (vues.Count > 0) {
                foreach (Vue v in vues) {
                    processed++;
                    updateProgress((processed * 100 / total));

                    string filename = v.gallery__file.Replace("./", "");

                    // Download File

                    try {
                        string path = Path.Combine(vueDirectory.AbsolutePath, filename);
                        //Save the Image using writeAsync
                        FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
                        using (HttpClient client = new HttpClient())
                        {
                            byte[] buffer = await client.GetByteArrayAsync("http://XXXX/site_media/" + filename);
                            await fs.WriteAsync(buffer, 0, buffer.Length);          
                        }


                        //Close file connection
                        fs.Close();
                    }
                    catch (Exception ex)  {
                        Log.Error("XXXX", ex.ToString());
                    }
                    finally {
                        App.db.SaveVues(v);
                    }
                }
            }
            return processed;
        });

我在许多 Android 设备上测试了我的应用程序,它运行良好。但现在我在旧平板电脑(运行 android 4.0.3 的松下)上测试它。所以它使用 HttpClient 下载了一些图像,但过了一会儿我得到了一个 SIGSEGV 11。我 100% 确定它来自下载部分,因为当我绕过这部分时,一切都很好。

在日志中我可以看到如下信息:

  • suspend_thread 挂起耗时 200 毫秒,超过了允许的值 200 毫秒
  • 无法使用 libunwind.so 展开:无法加载库
  • 无法加载库:load_library[1091]:找不到库“/data/data/RescueCode.Droid.RescueCode.Droid/lib/libcorkscrew.so”
  • 时间设备名称类型 PID 标签消息 10-11 22:06:23.039 PANASONIC FZ-A1B 错误 7898 libc 致命信号 11 (SIGSEGV) 在 0xdeadbaad (code=1)

有人遇到过这种错误吗?试图在网上查找信息,但似乎是一个罕见的错误。

谢谢大家!

【问题讨论】:

  • 删除了文件保存部分,仍然错误,删除了下载部分+保存部分:没有错误。我像这样尝试了 4 - 5 次,但再次出现错误。貌似来自Task部分?

标签: c# android xamarin dotnet-httpclient


【解决方案1】:

当我在没有任何 USB 连接器的情况下运行该应用程序时,它运行良好.. 似乎以调试模式链接到 Xamarin?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多