无法解析符号“IOUtils”

问题描述 投票:0回答:5

我使用以下代码在我的 Android 应用程序中创建一个临时文件:

public File streamToFile (InputStream in) throws IOException {
    File tempFile = File.createTempFile("sample", ".tmp");
    tempFile.deleteOnExit();
    FileOutputStream out = new FileOutputStream(tempFile);
    IOUtils.copy(in, out);
    return tempFile;
}

现在的问题是

Cannot resolve symbol 'IOUtils'
。我做了一些谷歌搜索,发现要使用 IOUtils,我需要下载并包含一个 jar 文件。我从这里commons-io-2.4-bin.zip)下载了jar文件。我将 zip 中名为
commons-io-2.4.jar
的 jar 添加到我的包中,当我尝试使用以下命令导入它时:

import org.apache.commons.io.IOUtils;

显示错误

Cannot resolve symbol 'io'
。所以我尝试像这样导入它:

import org.apache.commons.*

但我仍然收到错误

Cannot resolve symbol 'IOUtils'

问题 1:为什么我会收到此错误?怎么解决?

问题 2:有没有办法在不使用外部库的情况下从 InputStream 创建临时文件?或者这是最有效的方法?我正在使用 android studio。

java android apache import android-studio
5个回答
102
投票

对于 Android Studio:

  1. 文件 -> 项目结构... -> 依赖项
  2. 点击右上角的“+”并选择“库依赖项”
  3. 在搜索字段中输入:“org.apache.commons.io”并单击“搜索”
  4. 选择“org.apache.directory.studio:org.apache.commons.io:

或者

implementation 'org.apache.directory.studio:org.apache.commons.io:2.4
添加到
build.gradle
文件


9
投票

右键单击项目导航器中的

commons-io-2.4.jar
文件并单击“添加到项目”解决了该问题。


5
投票

添加以下依赖项解决了问题

 implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'

3
投票

对于那些在开发 Netbeans Java 项目时遇到此问题的人。我所做的是在这里下载了 IO 的二进制文件 Zip

Commons IO Util Jar 在此处下载

然后右键单击我的项目>属性>


在类别窗格中,单击库


然后单击添加 Jar/文件夹


找到已下载的提取的 IO Util 的 jar 文件/文件夹。


然后单击“确定”。那修好了我的。 :)


0
投票

首先我添加了此依赖项,但在设备上安装应用程序时出现错误:

implementation("org.apache.directory.studio:org.apache.commons.io:2.4")

错误:

The application could not be installed: INSTALL_FAILED_NO_MATCHING_ABIS

然后根据这里的答案,我在 build.gradle.kts 文件中使用了这个其他依赖项并且它起作用了:

implementation("commons-io:commons-io:2.5")
© www.soinside.com 2019 - 2024. All rights reserved.