问题描述
||
我正在开发一个执行大量HTML解析的应用。我想确保html和css的格式正确(我有充分的理由相信它们不是)。使用logcat并不是特别有帮助,因为有很多文本可以筛选。因此,我想为什么不将其写入文件,然后(用我的眼睛)读取该文件以查看其是否为可写状态。我相信adb pull是将文件从模拟器中拉到桌面上的命令。 Windows 7是我的开发操作系统。当我使用adb pull \'myfile.txt \'时,出现一个错误,提示我的文件不存在。这是我编写的用于创建文本文件的Java函数:
private void cbdLog(String s){
File root = Environment.getExternalStorageDirectory();
if(root.canWrite()){
try {
File cbdLog = new File(root,\"myfile.txt\");
FileWriter logWriter = new FileWriter(cbdLog);
BufferedWriter out = new BufferedWriter(logWriter);
out.write(s);
out.close();
Log.d(\"YO!\",\"Log file has been written\");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
Log.d(\"YO!\",\"Loggin failed\");
}
}
解决方法
该文件可能位于/sdcard/myfile.txt上,因为您将其存储在外部存储的根目录(即我假设的sdcard)中。尝试从那里拉文件:
adb pull /sdcard/myfile.txt .
, 如果您尝试从本地应用程序目录中提取文件,则会出现权限错误,因为只有该应用程序才有权访问其自己的文件
这将解决问题:
> adb shell
shell $ run-as com.contapps.android
shell $ chmod 666 databases/file
shell $ exit ## exit out of \'run-as\'
shell $ cp /data/data/package.name/databases/file /sdcard/
shell $ run-as com.contapps.android
shell $ chmod 600 databases/file
> adb pull /sdcard/file .
, 从4.4开始,无法从运行方式将文件复制到sdcard
所以现在我将文件许可更改为666
chmod 666的文件名
和使用
adb pull与文件的完整路径
因为5.0拉这类文件不起作用。
然后我移到了adb shell cat path_to_file_on_android_fs> path_on_local_fs
仍然对我有用:)
, 尝试Environment.getExternalStorageDirectory().getAbsolutePath();
。
, 您可以进入DDMS透视图并选择文件视图,从模拟器中拖放文件。您的文件应该在某处。