Я следовал этому руководству: https://firebase.google.com/docs/test-lab/android/test-screenshots
Однако если посмотреть на исходный код ScreenShotter:
private static final String SCREENSHOT_PATH = "/sdcard/screenshots/";
....
File imageFolder = new File("/sdcard/screenshots/");
/sdcard/screenshots/
- это расположение по умолчанию, и его нельзя изменить.
В настоящее время я получаю эту ошибку журнала:
E/cloud_screenshotter: Exception taking screenshot: java.io.FileNotFoundException: /sdcard/screenshots/<package>.MockTest-testFilterButton-isPageShown-1.jpg: open failed: ENOENT (No such file or directory)
Я пытаюсь протестировать на реальном устройстве, у которого нет слота для SD-карты, поэтому я хочу сохранить его во внутреннем хранилище.
Как я могу изменить местоположение? Или я могу использовать только библиотеку cloudtestingscreenshotter_lib.aar с лабораторией тестирования firebase?
/sdcard
доступен (должен быть) доступен на каждом устройстве, даже если нет явного слота для SD-карты. На каждом устройстве Android есть область памяти, которая соответствует/sdcard
. Не встречал устройства, на котором его нет. Можете ли вы проверить следующее: a) Ваш тестовый пакет имеет разрешениеWRITE_EXTERNAL_STORAGE
, b) Папка созданаadb shell ls /sdcard
, вы должны увидеть папку с именемscreenshots
. - person Maik   schedule 28.03.2020