You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

手机内部存储目录间文件复制报错:NoClassDefFoundError找不到Paths类

解决Android中复制文件时的NoClassDefFoundError: Ljava/nio/file/Paths;问题

这个错误的核心原因很明确:java.nio.file.Paths和Files.copy()是从Android API 26(Android 8.0)才正式加入系统API的,如果你的应用设置的最低兼容版本(minSdkVersion)低于26,运行在低版本设备上时就会找不到这个类,抛出你看到的异常。

下面给你几个不同场景下的解决方案:

方案一:兼容所有Android版本的传统IO实现

如果你需要支持API 26以下的设备,推荐用传统的FileInputStream和FileOutputStream来实现文件复制,这是最稳妥的方式:

public static void copyFile(File sourceFile, File destFile) throws IOException {
    // 如果目标文件存在,先删除(对应你原来的REPLACE_EXISTING选项)
    if (destFile.exists()) {
        destFile.delete();
    }

    try (FileInputStream in = new FileInputStream(sourceFile);
         FileOutputStream out = new FileOutputStream(destFile)) {
        
        byte[] buffer = new byte[1024 * 4]; // 4KB缓冲区,可根据需求调整
        int length;
        while ((length = in.read(buffer)) > 0) {
            out.write(buffer, 0, length);
        }
        // 确保所有数据都写入磁盘
        out.flush();
    }
}

调用的时候直接传你的file2(源文件)和file(目标文件)即可:

try {
    copyFile(file2, file);
} catch (IOException e) {
    e.printStackTrace();
    // 处理复制失败的情况,比如提示用户
}

方案二:仅支持API 26及以上设备

如果你的应用不需要兼容老设备,只需要两步调整:

  1. 在你的build.gradle(Module级别)中把minSdkVersion设置为26:
android {
    defaultConfig {
        minSdkVersion 26
        // 其他配置...
    }
}
  1. 确保你已申请必要的存储权限:
    • Android 6.0(API 23)及以上需要动态申请READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限;
    • Android 13(API 33)及以上可以使用更细粒度的权限,比如READ_MEDIA_IMAGES、READ_MEDIA_VIDEO等,具体根据你操作的文件类型而定;
    • 如果是操作应用私有目录(比如getFilesDir()、getCacheDir()下的文件),则不需要申请权限。

调整后你原来的代码就可以正常运行,但记得捕获IOException:

try {
    Files.copy(Paths.get(file2.getAbsolutePath()), Paths.get(file.getAbsolutePath()), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
    // 处理复制失败逻辑
}

额外提醒:关于文件移动操作

如果你需要实现文件移动,而不是复制:

  • 用传统IO的话,复制完成后删除源文件即可;
  • API 26+可以直接用Files.move()方法,参数和copy()类似,同样支持REPLACE_EXISTING选项。

内容的提问来源于stack exchange,提问作者Chuflitas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:42:30