#dart #flutter
#dart #сбой
Вопрос:
сбой запуска flutter -release с:
Initializing gradle... 1.6s
Resolving dependencies... 2.1s
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Dart snapshot generator failed with exit code -6
Snapshotting exited with non-zero exit code: -6
Running Gradle task 'assembleProfile'...
Running Gradle task 'assembleProfile'... Done 97.3s
Gradle task assembleProfile failed with exit code 1
mwpierce63@mwpierce63-HP-Z600-Workstation:~/Dropbox/Flutter/diet
вывод flutter doctor -v:
[✓] Flutter (Channel beta, v1.2.1, on Linux, locale en_US.UTF-8)
• Flutter version 1.2.1 at /home/mwpierce63/bin/flutter
• Framework revision 8661d8aecd (3 weeks ago), 2019-02-14 19:19:53 -0800
• Engine revision 3757390fa4
• Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /home/mwpierce63/Android/Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: /home/mwpierce63/bin/android-studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
• All Android licenses accepted.
[✓] Android Studio (version 3.1)
• Android Studio at /home/mwpierce63/bin/android-studio
• Flutter plugin version 29.1.1
• Dart plugin version 181.5656
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
[✓] IntelliJ IDEA Community Edition (version 2018.1)
• IntelliJ at /home/mwpierce63/intelij/idea-IC-181.4668.68
• Flutter plugin version 31.3.1
• Dart plugin version 181.5656
[✓] Connected device (3 available)
• SM T320 • 08e8d4370683f6e6 • android-arm • Android 4.4.2 (API 19)
• SAMSUNG SM N900A • 43fe4f65 • android-arm • Android 5.0 (API 21)
• ASUS ZenFone 2E • F8AZCY10U314 • android-x86 • Android 5.0.1 (API 21)
• No issues found!
запуск flutter — отладка работает корректно, запуск flutter — сбой профиля с теми же ошибками, что и выше.
Есть идеи?
Фрагмент кода-нарушителя, который вызывает бесконечный цикл, находится там:
subObjs = recipeObjs.elementAt(idx).findElements('Serv');
// the problem is here
recipes.elementAt(idx).servings =
int.tryParse(subObjs.elementAt(0).getAttribute("qty")) ?? 1;
Комментарии:
1. На каком устройстве вы пытались запустить?
2. Я пробовал на samsung galaxy note 3 и Samsung tablet SM T320.
3. ХОРОШО, здесь немного больше информации. Когда я компилирую и наблюдаю за использованием системной памяти, я вижу, что она уменьшается, поскольку она выделяется для компиляции, пока у меня не закончится системная память, и в это время возникает bad_alloc. Я просматривал циклические зависимости, нашел несколько и реструктурировал код, чтобы избавиться от них. Есть еще несколько, которые я могу устранить, но мой вопрос таков: могут ли симптомы, которые я вижу, быть вызваны циклическими зависимостями, которые компилятор Dart не обнаруживает?
4. Не уверен, о каких зависимостях вы говорите. Импорт Dart может содержать ошибки, и они не должны вызывать проблем.
5. Что ж, я включил сборку gradlew с помощью —debug, —info, —stacktrace, —full-stacktrace, и я не могу получить никакой информации о том, почему сборка потребляет всю мою системную память перед завершением с ошибкой. Что-то в компиляциях —release и —profile находится в бесконечном цикле (возможно, рекурсивном), но я ни за что на свете не могу понять, как получить эту информацию.