在有根设备上,正确的解决方案是:
Open cmd
Change your directory and go into 'Platform tools'
Type 'adb shell'
su
Press 'Allow' on device
chmod 777 /data /data/data /data/data/*
Open DDMS view in Eclipse/IntelliJ and from there open 'FileExplorer' to get your desired file
原始解决方案有效,但 chmod 将返回未知目录。将 chmod 命令更改为 /data/data/* 可以从 Intellij 中的 DDMS 访问数据目录中的所有子文件夹。我假设 Eclipse DDMS 也有同样的解决方案。
更新
所以,我发现很奇怪。我在 IntelliJ(Android 设备监视器)中使用 DDMS 运行 Nexus 6。我已经构建了一个小的入门应用程序。所述应用程序将数据保存到 data/data/com.example.myapp/files 中的 .csv 文件
当我第一次开始尝试在我的 Nexus 6 上访问这个文件时,我发现我必须 root 设备.. 我可以看到数据文件夹,但尝试打开它是行不通的。正如其他地方在网上提到的那样,expand + 会消失,然后很快就会重新出现(注意,网上有一些解决方案声称允许在不生根的情况下访问这些文件夹,我直到为时已晚才找到它们,我不确定我是否不想root((我宁愿能够手动完成,而不是依靠应用程序或命令提示符来给我我的解决方案)))。我植根了我的 6 并再次尝试了 DDMS。
此时,它向我显示了数据文件夹,我可以展开文件夹并查看 com. 目录,但我无法打开其中任何一个。那是我发现上述解决方案的时候。初始说明不适用于这部分:
chmod 777 /data /data/data /data/data/com.application.pacakage /data/data/com.application.pacakage/*
那是我尝试发布的解决方案时:
chmod 777 /data /data/data /data/data/*
该解决方案似乎有效,但仅适用于某些文件夹。我现在可以展开 myapp 文件夹,但无法展开其中的 files 目录。
在这一点上,我玩了一会儿,然后想为什么不在我需要的目录上尝试它而不是尝试这些通配符条目。
chmod 777 /data /data/data /data/data/com.example.myapp/*
其次是:
chmod 777 /data /data/data /data/data/com.example.myapp/files
这些命令允许我展开并查看我的应用程序目录中的文件,以确认 .csv 已正确保存。
希望这可以帮助某人。我为此挣扎了好几个小时!
(更进一步,奇怪的是,权限没有传递给传递给文件目录的.csv文件。我的文件目录权限读取drwxrwxrwx和我的log.csv文件权限读取-rw-rw--- - .. 仅供参考)