Xamarin的.Android HttpClient镜像下载

本文关键字:镜像 下载 HttpClient Android Xamarin | 更新日期: 2023-09-27 18:12:34

我使用以下代码从具有特定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设备上测试了我的应用程序,它运行得非常好。但现在我在一台旧平板电脑(运行安卓4.0.3的松下)上进行了测试。所以它下载一些图像使用HttpClient,但随机过了一会儿,我得到了一个SIGSEGV 11。我100%确定它来自下载部分,因为当我绕过这部分时,一切都运行得很好。

在日志中我可以看到这样的信息:

  • suspend_thread挂起时间为200ms,超出了允许的范围200ms
  • 无法与libunwind.so展开:无法加载库
  • 无法加载库:load_library[1091]: library '/data/data/RescueCode.Droid.RescueCode.Droid/lib/libcorkscrew. lib/libcorkscrew. lib/libcorkscrew. libso' not found
  • 时间设备名称类型PID标记消息10-11 22:06:23.039松下FZ-A1B错误7898 libc致命信号11 (SIGSEGV)在0xdeadbad (code=1)

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

Xamarin的.Android HttpClient镜像下载

当我在没有任何usb连接器的情况下运行应用程序时,它工作得很好。