【发布时间】:2018-09-07 15:08:22
【问题描述】:
我最近将我的 android 应用程序更改为面向 Android SDK 版本 26(之前的版本 19)。当我在 Oreo 设备上安装应用程序时,我尝试使用 ADB 通过 ADB shell 命令检查应用程序的数据目录(/data/data/app-package-name)。但是命令行返回了:
cd: /data/data/app-package-name: 权限被拒绝
当我的应用面向 Android SDK 版本 19 时,我之前能够访问该目录。
现在,我已经阅读了很多关于此的其他堆栈溢出帖子,它们的答案通常是您需要一个根设备或使用某种第 3 方库。
我注意到从 API 23 开始,Google 引入了一个新的权限模型 (https://developer.android.com/about/versions/marshmallow/android-6.0-changes),所以我想知道这是否会导致我遇到的问题。
任何帮助将不胜感激。
【问题讨论】:
-
当您在 19 上设置目标时,您是否也在 19 设备上进行了测试?这应该与应用权限无关,而与
shell用户拥有的权限有关。 -
我在同一个 Oreo 设备 (API 26) 上测试了应用程序 (API 19 & 26)。
-
这很奇怪。但无论如何,你一开始就不应该这样做,即使是来自亚行。不幸的是,您在工作流程中使用了一个错误。
-
你在用模拟器吗?
-
在根设备上,您可以访问该文件夹,否则您不能。我认为从棒棒糖开始,genymotion模拟器默认没有root访问权限。