Linux Рабочий стол Fultter - невозможно запустить приложение из скомпилированного исполняемого файла, работает flutter run - PullRequest
2 голосов
/ 29 мая 2020

Вывод Flutter doctor:

[✓] Flutter (Channel master, 1.19.0-2.0.pre.193, on Linux, locale pl_PL.UTF-8)
<b>    </b><b>•</b><b> Flutter version 1.19.0-2.0.pre.193 at /home/michal/android/flutter</b>
<b>    </b><b>•</b><b> Framework revision fed18fc433 (3 hours ago), 2020-05-29 03:43:01 -0400</b>
<b>    </b><b>•</b><b> Engine revision 17737e6fd4</b>
<b>    </b><b>•</b><b> Dart version 2.9.0 (build 2.9.0-11.0.dev 6489a0c68d)</b>

[✓] Android toolchain - develop for Android devices (Android SDK version
    29.0.0-rc2)
<b>    </b><b>•</b><b> Android SDK at /home/michal/Android/Sdk</b>
<b>    </b><b>•</b><b> Platform android-29, build-tools 29.0.0-rc2</b>
<b>    </b><b>•</b><b> ANDROID_HOME = /home/michal/Android/Sdk</b>
<b>    </b><b>•</b><b> Java binary at: /home/michal/android/studio/jre/bin/java</b>
<b>    </b><b>•</b><b> Java version OpenJDK Runtime Environment (build</b>
<b>      1.8.0_212-release-1586-b4-5784211)</b>
<b>    </b><b>•</b><b> All Android licenses accepted.</b>

[✓] Chrome - develop for the web
<b>    </b><b>•</b><b> Chrome at google-chrome</b>

[✓] Linux toolchain - develop for Linux desktop
<b>    </b><b>•</b><b> clang version 9.0.1-12</b>
<b>    </b><b>•</b><b> cmake version 3.16.3</b>
<b>    </b><b>•</b><b> ninja version 1.10.0</b>

[✓] Android Studio (version 3.6)
<b>    </b><b>•</b><b> Android Studio at /home/michal/android/studio</b>
<b>    </b><b>•</b><b> Flutter plugin version 45.1.1</b>
<b>    </b><b>•</b><b> Dart plugin version 192.8052</b>
<b>    </b><b>•</b><b> Java version OpenJDK Runtime Environment (build</b>
<b>      1.8.0_212-release-1586-b4-5784211)</b>

[✓] VS Code (version 1.45.1)
<b>    </b><b>•</b><b> VS Code at /usr/share/code</b>
<b>    </b><b>•</b><b> Flutter extension version 3.8.1</b>

[✓] Connected device (4 available)
<b>    </b><b>•</b><b> Android SDK built for x86 64 • emulator-5554 • android-x64    • Android 10</b>
<b>      (API 29) (emulator)</b>
<b>    </b><b>•</b><b> Linux                        • Linux         • linux-x64      • Linux</b>
<b>    </b><b>•</b><b> Web Server                   • web-server    • web-javascript • Flutter</b>
<b>      Tools</b>
<b>    </b><b>•</b><b> Chrome                       • chrome        • web-javascript • Google</b>
<b>      Chrome 84.0.4147.21 dev</b>

• No issues found!

Мое приложение успешно компилируется, и я могу запустить его без проблем с flutter run -d Linux. Однако это не работает, когда я пытаюсь запустить напрямую скомпилированный исполняемый файл, в этом случае я получаю сообщение об ошибке:

embedder.cc (781): &apos;FlutterEngineInitialize&apos; returned &apos;kInvalidArguments&apos;. Not running in AOT mode but could not resolve the kernel binary.
Failed to start Flutter engine: error 2
Failed to create window.

Команда для компиляции: flutter build linux

Любое предложение, как чтобы запустить его как отдельное приложение?

1 Ответ

4 голосов
/ 29 мая 2020

Похоже, вы пытаетесь запустить исполняемый файл, который находится на верхнем уровне вывода сборки. Вместо этого вам нужно запустить копию в подкаталоге bundle каталога сборки, в котором все вспомогательные файлы находятся в правильных относительных местоположениях.

После того, как Linux будет дальше, подробности о том, как использовать то, что в каталоге сборки будут где-то задокументированы.

Есть предложения, как запустить его как отдельное приложение?

Каталог bundle в целом является автономным приложением . Если вы имеете в виду наличие всего в одном исполняемом файле без каких-либо необходимых вспомогательных файлов, это невозможно.

...