2011-01-17 63 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卡,在插入时。