Android:adb pull error,myfile.txt不存在

时间:2011-06-06 19:28:07

标签: android adb

我正在开发一个可以进行重度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");
    }
}

5 个答案:

答案 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 .