我正在开发一个可以进行重度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");
}
}
答案 0 :(得分:2)
如果您尝试从本地应用中提取文件,则会收到权限错误,因为只有该应用拥有自己文件的权限
这将解决问题:
> 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 .
答案 1 :(得分:1)
自4.4以来无法从run-as将文件复制到SD卡 所以现在我将文件更新更改为666 chmod 666 file_name
并使用 adb pull with the file path to the file
因为5.0拉这些文件不起作用。
我转移到了adb shell cat path_to_file_on_android_fs> path_on_local_fs
仍然适用于我:)
答案 2 :(得分:0)
尝试Environment.getExternalStorageDirectory().getAbsolutePath();
。
答案 3 :(得分:0)
您可以通过进入DDMS透视图并选择文件视图来从模拟器中拖放文件。你的文件应该放在那里。
答案 4 :(得分:0)
该文件可能位于/sdcard/myfile.txt上,因为您将其存储在外部存储的根目录(这是我假设的SD卡)。尝试从那里拉文件:
adb pull /sdcard/myfile.txt .