解决方案:测试目标项目也必须在AndroidManifest.xml中添加WRITE_EXTERNAL_STORAGE。
这个问题来自于一个Android测试项目,无法将测试结果写入SD卡。在测试目标项目中添加WRITE_EXTERNAL_STORAGE可以解决这个问题。
当我使用下面的代码将XML文件写入模拟器的SD卡时,总是抛出权限被拒绝的异常。我已经在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();
}
捕获到了IOException,错误信息为: 在新建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卡写入文件。
有人能给我一些建议吗?
注: 模拟器系统为2.3.3