【发布时间】:2011-12-24 15:31:14
【问题描述】:
解决方案:测试目标项目还必须在AndroidManifest.xml中添加WRITE_EXTERNAL_STORAGE
这个问题来自一个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
【问题讨论】:
-
你在模拟器参数中设置了sd存储卡吗?在您可以创建它的界面中,有一个选项
-
是的~我可以用另一个应用程序将文件写入我的模拟器的sd卡,并从adb shell中,我也可以操作sd卡。
-
我遇到了同样的问题。你解决了吗?看我的帖子:stackoverflow.com/questions/10877740/…
-
对于模拟器,请确保至少有 512mb 大小的 SDCard
标签: android permissions android-sdcard