"adb pull"卡在了一半



突然,我的"adb-pull"命令将卡在进程的中间。我不确定是什么原因,在安装了一些应用程序或驱动程序之后。发生在"拉一个文件"或"拉多个文件"中。

以前有人遇到过同样的问题吗?谢谢

示例:

U:\batch>adb-pull/sdcard/xxxxlog/mobilelog。\xxxlog\

[94%]/sdcard/xxxxlog/mobilelog/APLog_xxx/main_log_1_xxx:87%

这里是我的控制台的屏幕截图

了解我的具体答案,并为遇到类似问题的人提供可能的答案。

在我重新安装了整个操作系统,测试了不同的adb版本后,这个问题仍然存在。

在测试adb版本期间,我发现如果我使用本地磁盘,问题就不会发生。。。其中使用网络驱动器时出现问题。。

因此,一个可能的解决方案是不要使用网络驱动器

每次遇到这种情况,都会成为最大路径长度的问题。使用adb在设备上打开一个shell,然后查看正在提取的目录中的文件名。如果任何名称过长,它们将默默失败,adb将挂起

真正让你陷入循环的是,它通常在给出完成百分比后失败,这会让你认为这是一个错误的连接或其他问题。

我还没有找到一种好的方法来递归地列出shell中的文件名,并在执行pull之前测试它们的名称长度,以了解问题是否会发生,但当我遇到同样的问题并重命名长文件时,它最终会在下一次尝试中起作用。

我在Windows7机器上启动的adb服务器(v1.0.40(上遇到了类似的问题。当试图从同一本地网络中运行Linux的其他机器上的设备中提取文件时(我使用:"adb-H pull…"(,adb偶尔会冻结。

解决方案是不使用Windows作为ADB服务器。

当adb服务器在Linux虚拟机(Ubuntu 16.4/VirtualBox(上运行时,这个问题是不可见的。希望这能有所帮助。

BR,Ziggy

我在尝试将大量数据从Android手机传输到Raspberry Pi 3B+时遇到了同样的问题,logcat输出似乎显示adb由于USB缓冲区读取问题而默默失败(不幸的是,我没有确切的消息(。

在最初的故障之后,可以通过拔下手机插头,运行adb kill-serveradb start-server,并将其插回每个文件之间,分别获得另外几个文件,但我能找到的唯一长期解决方案是重新启动Raspberry Pi。然而,这种解决方案并不是永久性的,必须偶尔重复。

我无法在Windows或传统的Ubuntu系统上复制这个问题。

我在将文件从Ubuntu机器复制到Pixel 7时遇到了这个问题。

基于此错误报告的解决方法是运行

adb shell exit

在另一个终端中,只要它被卡住,直到所有文件都被复制。你也可以运行

watch -n 30 adb shell exit

每30秒运行一次命令,这样您就不必一直关注这个过程。我希望这能帮助到别人。

在我的案例中,adb在尝试使用带有空格的push/pull文件夹/文件时开始挂起。请尝试替换:

adb push input path output path

带有

adb push "input path" "output path"

如果你在代码中使用adb(例如nodeJS(,并且以上版本没有帮助,你可以尝试像这样编码你的路径:

"output path".replaceAll(" ", "\ ")

您可能还想退出\",例如:

execSync(`adb push "${inputPath}" "${outputPath}"`);

将变成:

execSync(`adb push \"${inputPath}\" \"${outputPath}\"`);

因此,完整的例子是:

execSync(`adb push \"${inputPath.replaceAll(" ", "\ ")}\" \"${outputPath.replaceAll(" ", "\ ")}\"`);

相关内容

  • 没有找到相关文章

最新更新