好的,所以在我的Android Studio项目中,我有一个文件路径,在我的应用程序的缓存中导出一个.jpg文件,以共享图像意图捕获,在这种情况下来自Google Photos(尽管其他人喜欢从Chrome实现共享)以下结果)。
我使用.getAbsolutePath()
将其作为数组中的String传递给AsyncTask。
当我执行System.out.println(new File(data[0]).length());
,data[0]
作为我的绝对图片文件路径时,我会收到此输出:1657139
。
但是,出于某种原因,文件会在我的代码中的某处清空,并返回0
的{{1}}和.length()
的{{1}}。我无法确定它发生的确切位置,因为它似乎每次排空的位置都会发生变化。 (我在任何地方设置打印语句来检查)。
...实际上,现在再测试几次,看起来主要是在这两行代码之后,来自Algorithmia:
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());
,那真的很感激。感谢。
额外信息:使用图片选择窗口而非共享选项从Google相册或本地存储中挑选的相同照片似乎始终有效。
答案 0 :(得分:1)
好吧,我觉得现在发布这个真的很愚蠢,特别是因为我偶然发现了解决方案!
所以我有这个代码,它在启动时清除不需要的应用程序缓存,对吗?我有点忘了这一点,所以它总是在开始时运行。好吧,它实际上删除了我正在引用的文件,似乎在同一时间,所以我认为它可能是特定的代码,它是空白的。不!只是我忘记自己让我编写的代码删除了我需要的文件。 :P
我评论了这段代码,并且繁荣,它现在100%的时间都在工作。
我只是把这个留在这里的小案例中,一个独特的个人有完全相同的问题(那是什么机会?)
唉。