Я довольно долго пытался запустить эмулятор Android на Travis CI, чтобы запустить интеграционные тесты Flutter с использованием test_driver
.
Тесты в порядке, что я знаю, потому что задание для iOS успешно.
Теперь я наконец-то запустил эмулятор Android и запустил этот конфиг (travis.yml
) .
Значительная часть этого вопроса заключается в следующем:
os: linux
dist: trusty
language: android
android:
components:
# view link for sections I left out (components and Flutter SDK installation)
before_script:
- echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a
- emulator -avd test -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
- flutter doctor -v
- cd example
script:
- flutter driver test_driver/app.dart
Как я уже упоминал в начале, эмулятор работает нормально, и Flutter SDK также установлен правильно.
Когда достигается этап script
, команда, которая должна инициировать интеграционный тест, начинаетсоздать приложение для Android.Он успешно делает это и затем запускает Flutter, что приводит к следующей ошибке :
E/flutter ( 2248):
[ERROR:flutter/shell/platform/android/android_context_gl.cc(165)] Could not
choose an EGL configuration.
E/flutter ( 2248):
[ERROR:flutter/shell/platform/android/android_context_gl.cc(53)] EGL Error:
EGL_SUCCESS (12288)
F/flutter ( 2248):
[FATAL:flutter/shell/platform/android/platform_view_android.cc(29)] Check
failed: android_surface_. Could not create an OpenGL, Vulkan or Software surface
to setup rendering.
Я обнаружил эту проблему GitHub , которая может быть связанатем не менее, я также прочитал эту статью , в которой говорится, что автору удалось успешно запустить свои тесты Flutter на Android в конце статьи, т.е. они, похоже, не сталкиваются с ошибкой Vulkan , как могутбыть замеченным здесь .
У кого-нибудь есть достаточный опыт с этими продуктами, чтобы иметь решение для этого?