Android:adb拉取错误,myfile.txt不存在

问题描述

|| 我正在开发一个执行大量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透视图并选择文件视图,从模拟器中拖放文件。您的文件应该在某处。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...