Skip to content

copyOrMoveDir函数srcDir.listFiles()NPE异常 #1244

Closed
@TinyAndNeo

Description

@TinyAndNeo

描述 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

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions