Добавление зависимостей для плагина Flutter приводит к сбою моего приложения Flutter - PullRequest
0 голосов
/ 24 декабря 2018

Когда я следую подходу hello-world при создании плагина Flutter и добавлении его в другой проект hello-world Flutter, все происходит сбой всякий раз, когда я пытаюсь добавить зависимость плагина (локальную с path: или удаленную с * 1002).*.

Мои шаги:

  1. Я создаю новый проект Flutter, выполняя в терминале следующее:

flutter create hello_world_app

Я добавляю большой ресурс (> 665 МБ) в мое приложение hello_world_app, так как он мне понадобится в моем приложении.

Я создаю и запускаю приложение-прототип, используя свой большойактив внутри hello_world_app.Он работает без проблем.

Я создал плагин, используя следующую команду терминала:

Я создаю плагин Flutter, пишущий внутри терминала:

flutter create --org com.mycomp --template=plugin -i swift large_file_copy

Я делаю небольшие изменения во вновь созданном плагине.Я могу запустить только что созданный плагин "large_file_copy" в обоих мирах (iOS и Android).Я запускаю его из папки с примером плагина.Все работает хорошо.

Я делаю git-репо из плагина и фиксирую все изменения и отправляю его в публичный git-репо.

Но теперь, когда все идет не так, как надо:

Я пытаюсь добавить плагин к зависимостям моего проекта hello-world, выполняя следующие действия:

Внутри pubspec.yaml моего "hello_world_app"

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2

  large_file_copy:
    git:
      url: https://github.com/XXXXX/large_file_copy.git

Выходной терминал говорит:

Running "flutter packages get" in my_app...                     0.6s
exit code 0

Затем я пытаюсь запустить свой проект.И в этот момент приложение вылетает.

ПОЧЕМУ ДОБАВЛЕНИЕ ПЛАГИНА ЗАВИСИТ ОТ МОЕГО ПРОЕКТА FLUTTER CRASH ??

Фактически, я даже могу импортировать пакет плагинов в свой код флаттера и вызватьметод плагинов.Компилятор не жалуется в этот момент.Но как только я пытаюсь собрать и запустить, вот когда приложение вылетает ...

Что не так в вышеописанном подходе ??

Как правильно установить зависимость плагина ??

Вот два журнала сообщений об ошибках (один для iOS и один для мира Android).Опять же, это происходит, как только зависимость плагина добавляется в файл pubspec.yaml ....

Журнал сообщений об ошибках для iOS:

2018-12-23 14:32:52.179 xcodebuild[56661:1181076] [MT] PluginLoading: Required plug-in compatibility UUID D76765677-CB11-4D25-A34B-E33DB5A7C231 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/KZLinkedConsole.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2018-12-23 14:32:52.179 xcodebuild[56661:1181076] [MT] PluginLoading: Required plug-in compatibility UUID D76765677-CB11-4D25-A34B-E33DB5A7C231 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ColorSenseRainbow.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2018-12-23 14:32:52.179 xcodebuild[56661:1181076] [MT] PluginLoading: Required plug-in compatibility UUID D76765677-CB11-4D25-A34B-E33DB5A7C231 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/BBUDebuggerTuckAway.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2018-12-23 14:32:52.180 xcodebuild[56661:1181076] [MT] PluginLoading: Required plug-in compatibility UUID D76765677-CB11-4D25-A34B-E33DB5A7C231 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin' not present in DVTPlugInCompatibilityUUIDs
** BUILD FAILED **
Xcode's output:
↳
=== BUILD TARGET sqflite OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/user/Documents/flutter/.pub-cache/git/large_file_copy-5cc22b5c6d2345ba1ab23a44324b222c68d24ab4/ios/Classes/MyPluginName.m:2:9: fatal error: 'large_file_copy/large_file_copy-Swift.h' file not found
#import < large_file_copy/large_file_copy-Swift.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Could not build the application for the simulator.
Error launching application on iPhone XS.
Exited (sigterm)

.Журнал сообщений об ошибках для Android:

Launching lib/main.dart on Android SDK built for x86 in debug mode...
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:packageDebug'.
> Failed to obtain compression information for entry
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 12s
Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

1 Ответ

0 голосов
/ 25 декабря 2018

Оказывается, проблема не в добавлении плагинов!

Это скорее мой большой актив, который я имею в приложении Flutter, который вызывает исключение.

И это должно быть более или менее совпадением, что мое приложение Flutter вылетает с того момента, как я добавляюплагин для моего приложения.Это вводило в заблуждение.(Поэтому я предполагаю, что это могло быть и так - позже, когда я соберу свое приложение Flutter и добавлю больше кода. Это может быть проблема с памятью какого-то рода ... или вы мне скажете!)

Как только я удалю свой большой актив (665 МБ), интеграция с плагином будет работать без каких-либо исключений.

Вопрос жестко переходит к другому вопросу стекового потока: Как интегрировать большой актив в мой флаттерapp

И этот запрос можно закрыть.

...