Как запустить Flutter на Android в Travis CI - PullRequest
6 голосов
/ 09 июля 2019

Я довольно долго пытался запустить эмулятор 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 , как могутбыть замеченным здесь .

У кого-нибудь есть достаточный опыт с этими продуктами, чтобы иметь решение для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...