问题描述
好的,因此,在我的Android Studio项目中,在这种情况下,我有一个文件路径会导致应用缓存中的.jpg文件通过共享图片意图从Google相册中捕获(尽管其他类似Chrome的共享也可以达到以下效果) 。
我使用.getAbsolutePath()
将它作为字符串传递到AsyncTask中。
当我做System.out.println(new File(data[0]).length());
, data[0]
是我的绝对图像文件路径,我得到以下输出: 1657139
。
但是,由于某种原因,文件会在我的代码中清空,并为.length()
返回0
,为.canRead()
返回false
。
我无法查明它发生的确切位置,因为好像它每次清空的位置都在变化。
(我在所有地方都设置了打印语句以进行检查)。
...实际上,现在再测试几次,似乎主要是从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相册或本地存储中选择的同一张照片似乎总是可以使用。
1楼
好的,我现在真的很愚蠢,尤其是因为我想出了以后的解决方案,真是愚蠢!
所以我有这段代码,可以清除启动时不需要的应用程序缓存,对吗? 我有点忘记了,所以它总是在启动时运行。 好吧,实际上实际上是在同一时间删除了我正在引用的文件,所以我认为这可能是空白的特定代码。 不! 只是我写的健忘的自我出租代码删除了我需要的文件。 :P
我评论了这段代码,而且繁荣起来,现在100%的时间都有效。
我只是在一个小例子中把这个留在这里,因为一个独特的个体有完全相同的问题(这有什么机会?)
啊。