Closed
Description
描述 Bug
Attempt to get length of null array
com.blankj.utilcode.util.FileUtils.copyOrMoveDir(FileUtils.java:433)
该函数获取listFiles遍历时出现空指针异常
- AndroidUtilCode 的版本:utilcodex:1.28.4
- 出现 Bug 的设备型号:黑鲨游戏手机2
- 设备的 Android 版本:API29
相关代码
if (FileUtils.isFileExists(mCacheDir) && mCacheDir.list()?.isNotEmpty() == true) {
LogUtils.i("we need move moments from cache/sharktime to files/sharktime")
val startMs = System.currentTimeMillis()
FileUtils.moveDir(mCacheDir, mFileDir) { srcFile, destFile ->
LogUtils.i("move $srcFile to $destFile")
//不保留旧数据,return false
return@moveDir false
}
LogUtils.i("move moments finished, it takes ${System.currentTimeMillis() - startMs} ms.")
}
异常堆栈
1 com.blankj.utilcode.util.FileUtils.copyOrMoveDir(FileUtils.java:433)
2 com.blankj.utilcode.util.FileUtils.copyOrMoveDir(FileUtils.java:438)
3 com.blankj.utilcode.util.FileUtils.moveDir(FileUtils.java:404)
4 com.blackshark.discovery.global.GlobalVM$moveDataFromCache2Files$1.invokeSuspend(GlobalVM.kt:728)
5 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
6 kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:238)
7 kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
8 kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
9 kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742)
截图
Bugly后台数据上报,无发生现场,但出错逻辑清晰,listFiles得到的File数组为空,导致遍历时发生NPE