2011-12-24 84 views
7

解决方案后加“WRITE_EXTERNAL_STORAGE”否认:测试目标项目还必须添加WRITE_EXTERNAL_STORAGE在AndroidManifest.xml仍然允许在AndroidManifest.xml

这个问题来自一个Android测试项目,不能写测试导致SDcard。将WRITE_EXTERNAL_STORAGE添加到测试目标项目中可以解决此问题。


当我使用下面的代码将xml文件写入仿真器的sdcard时,总是抛出权限被拒绝。 。 我在AndroidManifest.xml中添加WRITE_EXTERNAL_STORAGE”

 @Override 
public void onStart(){ 

    try { 
     File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
     myWriter = new FileWriter(new File(root, TEST_RESULT+".xml"));   
     startResultOutput(myWriter); 
    } catch (IOException e) { 
     Log.d("TestInfo", "after new FileWriter: "+e.getMessage()); 
    } 
    super.onStart(); 

} 

逮住IOExcetion,该消息是: 后新的FileWriter:/mnt/sdcard/InterFace_test_result.xml(拒绝)

下面是清单代码

<application android:icon="@drawable/icon" android:label="@string/app_name"> 

<uses-library android:name="android.test.runner" /> 
</application> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"></uses-permission> 
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> 

安装了SD卡,因为我可以使用其他应用程序将文件写入外部SD卡。

有人可以给我一些建议吗?

PS: 仿真器系统是2.3.3

+1

你有没有在模拟器参数中设置一个SD存储卡?在你可以创建它的界面中有一个选项 – 2011-12-24 15:34:47

+0

是的〜我可以使用另一个应用程序将文件写入我的模拟器的SD卡,并从adb外壳,我也可以操作SD卡。 – Millie 2011-12-24 15:38:00

+0

我遇到了同样的问题。你解决了这个问题吗? 看到我的帖子: http://stackoverflow.com/questions/10877740/traceview-cant-write-sd-card – gladman 2012-06-04 10:40:34

回答

1

问题:

我能理解的是, 你加入permission两次

  1. 一次在Application标签作为属性
  2. 和第二次使用<use-permission>

解决方案:

尝试删除它们中的任何一个。

+0

感谢您的帮助,但它仍然无法工作。我从应用程序标记中删除了一个perstent ... – Millie 2011-12-24 15:53:31

0

您应该在<application>标记之前添加权限标记<uses-permission>

+1

不需要.. – Nikhil 2012-10-11 09:19:25

相关问题