从设备获取屏幕截图时出现意外错误: EOF

7

当我尝试从Android Studio中的某些项目中制作屏幕截图(通过按下相机图标)时,会收到以下消息:

"Unexpected error while obtaining screenshot from device: EOF"

如果我在打开完全不同的项目后点击相机图标,我可以拍摄相同图像的截屏。是否与该项目相关的某些损坏文件需要删除并替换?

3个回答

16

我最近遇到了这个问题 - 之前一切都很正常。 显然,几周前迁移到SDK 26后它开始出现了。以下方法对我很有效: - 关闭Studio - 将Android\sdk\platform-tools中的adb.exe重命名为.saf - 从Android\android-sdk\platform-tools复制旧的adb.exe到Android\sdk\platform-tools中 - 重新启动Studio

因此,基本上是用旧版本的ADB替换SDK 26的ADB ...


1
谢谢!我用另一个文件夹中的adb.exe文件替换了Android\sdk\platform-tools中的adb.exe文件,现在截屏程序运行得非常好。之前我已向Google Android Studio团队提交了错误报告,我会将您的解决方案传达给他们。 - user1608385
7
非常感谢! 对于不知道从哪里获取adb.exe的人: 请从https://dl.google.com/android/repository/platform-tools_r28.0.0-windows.zip下载平台工具r28.0.0,并使用已下载压缩包中的adb.exe。 - gal
在添加旧版本的平台工具后,Android Studio 会尝试更新它。请注意并取消更新。 - Ercan
我从哪里获取旧版的adb.exe? - mcfly soft
新版本的adb很糟糕。 - SDJSK
在Linux上呢? - Carlos Anyona

1
在我的情况下,重新启动Android Studio对我有用。 转到文件-->无效缓存/重启-->无效和重启
但是对于一些人,在重新启动后仍然存在问题。如果您设置了getActivity().getWindow().addFlags(LayoutParams.FLAG_SECURE);(通常用于避免截屏),它也会阻止您从Android Studio获取截屏,生成相同的错误“在获取截屏时出现意外错误”。

0

我尝试了这种方法,它有效:

  1. 创建adb_capture.txt文件并添加以下内容:

    REM ====================
    
    REM 为文件名设置变量_MyTime
    FOR /F "tokens=1-4 delims=:." %%a IN ("%time%") DO (
    SET _MyTime=%%a%%b%%c%%d
    )
    REM adb root
    REM adb remount
    adb shell screencap -p /sdcard/Download/s1.png
    adb pull /sdcard/Download/s1.png
    adb shell rm /sdcard/Download/s1.png
    REM 每个文件根据时间戳命名
    rename s1.png %_MyTime%.png
    
    REM===============
    
  2. 将文件名更改为adb_capture.bat,然后运行该文件即可捕获手机屏幕。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接