【发布时间】:2021-09-18 16:28:02
【问题描述】:
我正在 Android 上进行仪器测试,但我无法访问缓存文件夹或文件夹以读取和写入文件。我使用android: requestLegacyExternalStorage =" true " 授予 Manifest 中的权限,并使用 ADB idea 插件授予它所有权限。
这是我的测试代码:
@Test
public void createPDfOk() {
Context con = InstrumentationRegistry.getInstrumentation().getContext();
File f2 = new File(con.getFilesDir(), "lorem_ipsum.pdf");
File f = new File(con.getFilesDir(), "out.pdf");
}
以及错误代码:
Failed to ensure /data/user/0/com.some.package.test/files: mkdir failed: EACCES (Permission denied)
Failed to ensure /data/user/0/com.some.package.test/files: mkdir failed: EACCES (Permission denied)
E/com.some.package.MainActivity: Something fail in the process
/data/user/0/com.some.package.test/files/a_pdf.pdf: open failed: EACCES (Permission denied)
【问题讨论】:
-
“我在 Manifest 中使用 android 授予权限:requestLegacyExternalStorage =“true”,并使用 ADB idea 插件授予它所有权限”——这些与 @ 上的
getFilesDir()无关987654325@。尝试运行adb uninstall com.some.package.test卸载测试 APK,然后查看您的测试是否运行。 -
同样的问题,我无法访问测试包中的缓存。
-
最后我发现我可以访问外部缓存,但我不知道如何访问内部缓存。
标签: java android testing junit