工作中遇到的小问题的记录

这篇博客记录了作者在工作中遇到的一些小问题及其解决方案,包括Android文件拷贝时遇到的'open failed: EEXIST (file exists)'异常,原因是通过电脑资源管理器删除SD卡文件并未真正删除;Java字符串比较时误用'=='导致的ListView滚动卡顿问题,应该使用'equals()'方法;以及Android源码编译中遇到的GitError、XML模块缺失和编译速度慢的问题,分别给出了相应的解决办法。
摘要由CSDN通过智能技术生成

工作中遇到的小问题的记录

①Android:open failed: EEXIST  (file exists)

现象:

⑴在实现一个SD卡中的文件从一个路径拷贝到另一个路径的功能时,需要测试当SD卡空间不够的情况下的情况。所以我先让空间保证足够,进行了一次拷贝操作,OK,程序正常。

⑵然后我把手机连接电脑,通过电脑的资源管理器删除了拷贝的文件,并且让空间不够拷贝。再次进行拷贝操作,这次程序会抛Exception open failed: EEXIST  (file exists)。

⑶然后我再次让空间足够拷贝,但是这次程序还是抛出Exception open failed: EEXIST  (file exists)。

解决:

当时遇到这个问题,我通过电脑的资源管理器查看,SD卡目录下并没有抛出异常的这个文件。通过adb shell命令去查看,目录下也不存在这个文件。

这让我非常的蒙,这是个啥情况,明明SD卡的目录下没有该文件,为啥会说文件存在,因为我通过判断file.exists()方法判断,这个方法也给我false的返回。

查看异常堆栈,发现因为是new FileOutPutStream(new File)这句代码抛出的异常,又查是不是字节流没有close什么的。

总之各种改代码,发现还是抛这个异常。搞得我以为是代码出问题,但是换了一个新的SD卡的路径进行拷贝,程序又OK了。当时真是疯了。

晚上回去洗澡的时候,灵光一闪,我记得以前把手机刷机bin拷贝到SD卡中刷机的时候,明明已经通过电脑资源管理器删除了SD卡中旧的刷机bin,但是拷贝的时候还是会空间不足。查看大小,空间的确没有释放。

通过adb shell 查看的话,又不存在被删除的bin,搞得每次都要重新格式化SD卡。

后来我就通过adb shell命令删除SD卡中的旧的刷机bin,这次就正常了,新的刷机bin成功拷贝。

想到这里,我就觉得是不是这次的程序也是因为我是通过电脑的资源管理器删除拷贝的文件导致的问题。

第二天,我修改代码,当拷贝失败的时候,通过代码(file.dele

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值