2011-01-17 99 views
0

我的應用程序。失敗上線:createTempFile拋出「Permission denied」異常

File temp = File.createTempFile(「mediaplayertmp」, 「dat」); 

拋出「Permission denied」異常。

爲什麼會出現這種情況? 這聽起來像我需要改變某種Java設置來指定一個「remp」文件夾。

謝謝!

回答

5

這可能是你沒有足夠的權限寫入到外部存儲目錄。我不知道createTempFile需要這個(我認爲這將是對內部存儲空間,但不知道),但我建議加入WRITE_EXTERNAL_STORAGE允許您的清單,像這樣:

<manifest...> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
</manifest> 
+0

感謝您的幫助。我添加了一行的AndroidManifest.xml使得它現在有兩個元素<使用的許可機器人:名稱=「android.permission.INTERNET對」 /><使用的許可機器人:名稱=「android.permission.WRITE_EXTERNAL_STORAGE」 />;但是,它不會更改應用程序錯誤。我有改變是否正確? – dev222

+4

更新:更改爲此調用的替代簽名:File temp = File.createTempFile(「mediaplayertmp」,「dat」,this.getCacheDir());作品! – dev222

+0

啊好的!很高興你知道了,我不確定該從哪裏出發。 – kcoppock

1

因爲據我所知所配置的java.io.tmpdir默認的臨時文件的位置是/sdcard,你需要的WRITE_EXTERNAL_STORAGE允許添加到您的清單。

3

我有同樣的問題。對我而言,問題在於我在開發過程中通過USB將我的Android設備插入PC,並且SD卡在被其他設備安裝時被鎖定。一旦我拔掉了設備,它工作正常。你也可以告訴該設備未安裝SD卡,在插入時。