解决方案:测试目标项目还必须在AndroidManifest.xml中添加WRITE_EXTERNAL_STORAGE
这个问题来自一个android测试项目,它无法将测试结果写入SD卡。将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
答案 0 :(得分:1)
<强>问题:强>
我能理解的是,
您要两次添加permission
Application
标记中的一次属性<use-permission>
<强>解决方案:强>
尝试删除其中任何一个。
答案 1 :(得分:0)
您应该在<uses-permission>
代码之前添加权限标记<application>
。