2014-07-04 30 views
26

我用下面的代碼在我的Android應用程序創建一個臨時文件:無法解析符號「IOUtils」

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'。我做了一些Google搜索,發現使用IOUtils我需要下載幷包含一個jar文件。我從herecommons-io-2.4-bin.zip)下載了jar文件。我說從拉鍊到我的包名爲commons-io-2.4.jar罐子,當我試圖使用導入它:

import org.apache.commons.io.IOUtils; 

它顯示錯誤Cannot resolve symbol 'io'。所以,我試圖將其導入,如:

import org.apache.commons.* 

但我仍正在錯誤Cannot resolve symbol 'IOUtils'

問題1:爲什麼我得到這個錯誤?如何解決它?

問題2:有什麼方法可以在不使用外部庫的情況下從InputStream創建臨時文件?或者這是最有效的方法嗎?我正在使用android studio。

回答

7

右鍵單擊項目導航器中的commons-io-2.4.jar文件,然後單擊「添加到項目」解決了該問題。

+0

哪個jar文件? – zindarod

+0

@Zindarod遲到的答案我知道,但請參閱http:// stackoverflow。com/questions/17895557/add-commons-io-dependency-to-gradle-project-in-android-studio#comment61025941_33820307獲取jar – CrandellWS

+0

應該使用gradle系統來管理庫和版本 – thuongle

85

瞭解Android Studio:

  1. 文件 - >項目結構... - >相關性
  2. 點擊 '+' 在右上角選擇 「庫依賴」
  3. 在搜索領域類型: 「org.apache.commons.io」,然後點擊搜索
  4. 選擇「org.apache.directory.studio:org.apache.commons.io:

快樂CODI ng :)

+46

或者添加'compile'org.apache .directory.studio:org.apache.commons.io:2.4''到build.gradle文件 –

+1

要查看Dependices選項卡,首先單擊「Modules」下的「app」。 –

+0

這應該是被接受的答案。 –

2

對於那些在Netbeans Java項目中工作時遇到此問題的人。我所做的是我下載IO的二進制郵編這裏

Commons IO Util Jar Download Here

然後右鍵點擊我的項目>屬性>


在類別窗格中,單擊庫


然後點擊添加罐子/文件夾


找到下載的解壓縮IO Util的jar文件/文件夾。


然後點擊確定。那是固定的礦。 :)

+0

這個問題被標記爲[tag:android-studio]關於Netbeans的回答沒有回答。 – Oleg

+0

android無論如何都使用了接近於java的語法。我正在尋找這個確切的問題,我在netbeans中工作時曾經是一個在android中開發的IDE,似乎值得指出。上面提供的針對android-studio的逐步問題和必要的jar文件接近於在Netbeans中遇到的解決上述相同問題的問題。我只是在netbeans中提供我的版本,因爲在netbeans中也可能遇到這個問題。 事實上,我正在研究這個java proj.in netbeans,以便我可以在以後的工作代碼中將它部署到Android中。 –