You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于使用androidx.test.core.graphics.writeToTestStorage下载截图的技术咨询

关于使用androidx.test.core.graphics.writeToTestStorage下载截图的技术咨询

嘿,我之前迁移测试截图工具的时候也踩过这个坑,咱们一个个来解决你的问题:

1. 设备上的截图存储路径

设备端的截图默认存在这个路径:
/sdcard/Android/data/<你的应用包名>/files/test_output/screenshots/
要是你用的是Android 11及以上的设备,直接用系统文件管理器可能看不到这个目录(因为Scoped Storage限制),可以通过adb命令查看:

adb shell ls /sdcard/Android/data/<你的应用包名>/files/test_output/screenshots/

2. 本地构建目录的截图存储位置

本地构建目录里,截图会默认存放在:
app/build/outputs/androidTest-results/connected/<设备ID>/screenshots/
这个路径里的<设备ID>是你测试用的模拟器或真机的ID,你可以通过adb devices命令查到。如果是用云测试服务的话,路径可能会略有不同,但核心都在androidTest-results/connected这个大目录下。

3. 用Gradle触发截图下载

Android Gradle插件(AGP)其实默认会在你跑完connectedAndroidTest任务后,自动把设备上的测试输出(包括截图)拉到本地构建目录。如果没自动触发,试试这些方法:

  • 手动执行完整的测试任务:
    ./gradlew connectedAndroidTest
    
  • 单独执行拉取测试输出的任务(AGP 7.0+支持):
    ./gradlew pullTestOutput
    

另外要注意,别在build.gradle里设置testOptions.instrumentationRunnerArguments.clearPackageData = true,这个参数会清除测试输出目录,导致截图拉取不到。

4. 不用Gradle下载截图的方法

完全可以!直接用adb命令就能搞定。先确认设备上的截图路径,然后执行拉取命令:

adb pull /sdcard/Android/data/<你的应用包名>/files/test_output/screenshots/ ./本地目标文件夹/

比如你想把截图拉到当前目录的local-screenshots文件夹里,就可以写:

adb pull /sdcard/Android/data/com.example.myapp/files/test_output/screenshots/ ./local-screenshots/

最后提个小细节:你的代码里screenshot.writeToTestStorage (name)多了个空格,应该写成screenshot.writeToTestStorage(name),虽然大概率是输入笔误,但避免因为这个小问题导致执行异常~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:08:08