android - 无法从 android studio 执行 adb 命令,espresso 测试但能够从终端运行它们
问题描述
引发以下错误:java.io.IOException: Cannot run program "adb shell settings put secure location_providers_allowed -gps": error=13, Permission denied 我使用了来自 Android studio 的以下代码,espresso 测试。
String cmd = "adb shell settings put secure location_providers_allowed -gps";
ProcessBuilder pb = new ProcessBuilder(cmd);
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
解决方案
adb shell 在您的 PC 上运行。尝试将其关闭,然后运行“设置放置安全位置_providers_allowed -gps”。
另一种选择是将所有以空格分隔的字符串分隔为参数,例如:
新的 ProcessBuilder(cmd, arg1, arg2, arg3...);
推荐阅读
- python - 使用 groupby 的一列用 pandas 创建 X 个新列
- angular - 如何在html中动态传递弹出框标题,位置,文本
- python - Django-Cookiecutter 无法启动默认项目
- ios - 有没有办法在图层边缘实现边框图像(如 CSS 边框图像)?
- r - 用均值分组替换缺失值
- c# - 如何正确地从字段类型实例化泛型类并将其放入数组中
- angular - 为什么这个最简单的角度测试不起作用?
- typescript - 打字稿:从类型中排除所有必需的属性
- c++ - 将对象推入向量时如何计算使用复制构造函数的次数?
- postgresql-10 - Hibernate 不会关闭空闲会话