文件变量在Android Java中某些不相关的代码之后被神秘地清空



好的,所以在我的Android Studio项目中,我有一个文件路径,指向我的应用程序缓存中的.jpg文件,在这种情况下,该文件是使用共享图像意图从Google相册捕获的(尽管其他像Chrome共享一样实现了以下结果)。

我使用.getAbsolutePath()将其作为数组中的字符串传递到 AsyncTask 中。

当我做System.out.println(new File(data[0]).length());时,data[0]是我的绝对图像文件路径,我得到这样的输出:1657139

但是,由于某种原因,该文件在我的代码中的某个地方被清空,并返回0用于.length()false用于.canRead()。我无法确定它发生的确切位置,因为似乎每次它清空的位置都会发生变化。(我在任何地方设置打印语句进行检查)。

。实际上,现在再测试几次,它似乎主要是在这两行代码之后清空的,来自 Algorithmia:

System.out.println(localFile2.length());
System.out.println(localFile2.canRead());
System.out.println("reading");
//below lines
DataDirectory AlgoOutputDirectory = algorithmiaClient.dir("data://.algo/deeplearning/ColorfulImageColorization/temp");
DataDirectory ChromoPhotoDataDirectory = algorithmiaClient.dir("data://TrivisionZero/ChromoPhotoData");
//above lines
System.out.println(localFile2.length());
System.out.println(localFile2.canRead());

作为其输出是:

02-15 22:22:36.373 8380-8415/? I/System.out: 77647 //correct size
02-15 22:22:36.373 8380-8415/? I/System.out: true
02-15 22:22:36.373 8380-8415/? I/System.out: reading
//here's the algorithmia code
02-15 22:22:36.388 8380-8415/? I/System.out: 0 //now it's empty
02-15 22:22:36.388 8380-8415/? I/System.out: false
02-15 22:22:36.388 8380-8415/? I/System.out: reading

我意识到这不是一个专门针对 Algorithmia 问题的网站,但它们的响应时间比理想时间长得多。因此,如果有人知道为什么尺寸突然下降到0,那将不胜感激。谢谢。

额外信息:使用图像选择窗口而不是共享选项从Google相册或本地存储中选择的同一张照片似乎始终有效。

好吧,我现在发布这个真的很愚蠢,尤其是因为我在片刻之后就想出了解决方案!

所以我有这个代码,它可以在启动时清除不需要的应用程序缓存,对吧?我有点忘记了,所以它总是在启动时运行。好吧,它实际上是在删除我引用的文件,似乎完全相同,所以我认为这可能是它正在空白的特定代码。不!只是我健忘的自我让代码删除我需要的文件。:P

我评论了这段代码,繁荣,它现在 100% 有效。

我只是把它留在这里,在一个独特的人有完全相同的问题的小情况下(这有多大的可能性?

呸。

相关内容

最新更新