安卓导入java.nio.file.Files;无法解决

Posted

技术标签:

【中文标题】安卓导入java.nio.file.Files;无法解决【英文标题】:Android import java.nio.file.Files; cannot be resolved 【发布时间】:2014-09-12 04:59:15 【问题描述】:

我正在试用新的 Gmail API,示例使用 java.nio.file 包中的类,例如FilesFileSystems

这些类是在 Java jdk 1.7 中引入记录的,由于我在我的 android 应用程序中运行 jdk 1.7.0_65,我不知道为什么 Android Studio 找不到这些类。

进口是:

import java.nio.file.FileSystems;
import java.nio.file.Files;

我的 build.gradle 文件当然会告诉系统像这样使用 v.1.7

android 
    compileSdkVersion 19
    buildToolsVersion '20'
    ...
    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    

我指向的是jdk的正确目录:

jdk 列在外部库部分:

如果我浏览 Java 文件,我什至可以找到 java.nio.file.Files 和 .FileSystems:

现在,到底是怎么回事!?据我了解,我正在这里做所有事情,有什么建议吗?

【问题讨论】:

男人!我有完全相同的问题!对于我们应该使用Files 能够做的事情,您做了哪些工作?有什么好的第三方库吗?谢谢! 感谢您的细致分析!很少见。 好的,但它仍然存在问题......谁知道我们应该使用哪种库来代替? 尝试使用java.io.File.mkdirs()等方法 【参考方案1】:

Android 不提供“传统 java”必须提供的所有类。 Files 是 Android 不提供的类之一。

您可以在此处查看 Android 中可用的类:http://developer.android.com/reference/classes.html

所以很遗憾,您必须使用其他函数/类来实现相同的功能。

PS:该类显示在您的屏幕截图中,因为您浏览的是 PC 上安装的 java 类,而不是 Android 手机/平板电脑上可用的类.

更新

Files/FileSystem 类从 API 版本 26 开始可用。

【讨论】:

我明白了,非常感谢。不是我真正想听到的,但这肯定会解开谜团。谢谢 好的,但它仍然存在问题......谁知道我们应该使用哪种库来代替? java.nio.file.Files 现在在您提供的链接中,在 API 级别 26 中添加。【参考方案2】:

显然java.nio.file 将随 Android O 一起提供。 https://developer.android.com/reference/java/nio/file/package-summary.html

【讨论】:

【参考方案3】:

看看这个Link Android 支持某些类的 NIO 包而不是完整的类。但是如果你需要加快你的代码,你也可以使用 apache-commons api 来做同样的事情。

【讨论】:

以上是关于安卓导入java.nio.file.Files;无法解决的主要内容,如果未能解决你的问题,请参考以下文章

java 对于java.nio.file.Files

什么是 java.io.File.setWritable() 的 java.nio.file.Files 等价物?

Java Nio 十Java NIO Files

我应该关闭用 java.nio.file.Files.newInputStream 创建的流吗?

NIO2.0之copydelete和move

有什么方法可以模拟Files.write(...)方法吗?