毕加索在 Android 原生开发中的失败

问题描述

我在 Android Studio 中有一个用 Java 编码的 android 应用程序。 我将我的 Restful Api 发布到 Web 服务器。 每当我打开我的安卓应用程序时,上传到服务器的图片无法通过毕加索下载到应用程序。 而且我无法访问 App_Data 文件夹下的这些图片。有什么解决办法吗?

解决方法

我想分享这个答案,以防有人需要。

我在 App_Data 文件夹下的图片访问问题是由于缺少虚拟目录匹配引起的。 首先,我在 App_Data 下创建了一个指向我的图片文件夹的虚拟目录。 其次,我测试了我是否可以使用 chrome 浏览器访问这些图片。如果我用新创建的虚拟目录输入了正确的路径,我可以通过网络浏览器访问。

但关键问题是我无法从我的应用程序再次访问这些文件。 我通过深入研究和分析找到了原因。

实际问题是: 当我尝试通过我的 android 应用访问这些文件时,毕加索在其缓存中分配了一些映射。这是在我的 android 应用程序文件夹下。 由于这个缓存,无论我修复了虚拟目录问题,毕加索都无法访问它们。 Picasso 只检查它的缓存,如果该文件存在 404 错误,它不会再尝试一次。 因此,我完全从设备上卸载了它,然后又重新安装了它。之后一切正常!

编辑:清除毕加索缓存也有效。但必须在类似条件下使用,否则清除 picasso 缓存会影响加载时间和互联网使用。