Как диагностировать проблемы Gradle во Flutter

У меня возникла странная ошибка: один из плагинов, которые я использовал в течение длительного времени, внезапно начал выдавать неразрешенные ссылочные ошибки (либо при прямом вызове, либо вообще не найден, когда инструментальная цепочка пытается создать его экземпляр из GeneratedPluginRegistrant.java). Заявления об импорте присутствуют и верны. Самая сложная часть заключается в том, что одно и то же приложение нормально компилируется, если оно запущено из командной строки (flutter.bat build appbundle ...), и показывает ошибку только при сборке из IDE, то есть Android Studio.

Я получаю обычную ошибку:

> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
   > Compilation error. See log for more details

* 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.

Но как мне получить журнал? Я хорошо знаю предыдущие подобные вопросы, но они больше не работают. Добавление любого из приведенных выше параметров в «Настройки» > «Сборка» > «Компилятор Gradle-Android» > «Параметры командной строки» не имеет никакого влияния. Я добавляю -v к flutter run, и результирующий вывод будет довольно подробным, да, но он подробно показывает все до ошибки, указанной выше, но не добавляет никакой полезной информации к фактической ошибке (кроме трассировки стека внутри компилятора). здесь это совершенно неинтересно).

Использование gradlew.bat --verbose во время работы меня не интересует, потому что, как я уже говорил выше, ошибка появляется только при запуске из-под IDE, поэтому запуск из командной строки мне не поможет.

Я также попробовал GRADLE_OPTS или добавить --debug непосредственно в gradlew.bat в строке, где она собирает команду, но это ничего не меняет в выводе или, по крайней мере, нигде, где я это вижу.

Версии для справки:

  • Флаттер 3.24.0
  • Дартс 3.5.0
  • Градл 7.6
  • Android-студия 2024.1

Кэши очищались много раз, в том числе «Файл» > «Недействительные кеши» в AS, а также вручную во время тестирования. Проблема может быть воспроизведена с помощью соответствующего плагина, хранящегося как в обычном кеше пакета Pub, так и в виде локальной копии.

Обновляли ли вы Android Studio до того, как она начала работать в вашей IDE? в вашей студии Android могут быть изменения конфигурации. вы должны увидеть подробные журналы Android Studio и Gradle.

Bhavesh Audichya 08.08.2024 20:20

Нет, это произошло практически на ровном месте. Я что-то изменил, но вряд ли поверю, что это как-то связано: я перенес свой диск для разработки на SSD вместо жесткого диска. Но прежде чем вы поспешите указать, что это должно быть причиной, тогда :-), у меня есть около дюжины других приложений, все мигрировали правильно, каждая переменная ENV указывает на соответствующее место, уже проверено более трех раз, и это приложение также компилируется из командной строки. Но я, конечно, где-то не исключаю своей ошибки, поэтому хотелось бы увидеть подробный лог.

Gábor 08.08.2024 20:39

И, кстати, я бы даже не сказал, что это совпадает, переезд был где-то на день раньше, а над приложением, о котором идет речь, я работал после этого. Без этой ошибки.

Gábor 08.08.2024 20:40

Я вижу, ты уже много чего попробовал. Если вы хотите просмотреть журнал, вы можете перейти в меню справки вверху. Откройте «Справка» > «Средства диагностики» > «Настройки журнала отладки». Добавьте #org.gradle.api, чтобы собирать более подробные журналы. После этого проверьте журналы на наличие дополнительных подсказок. Это может привести к появлению журналов студии Android, я не уверен

Bhavesh Audichya 08.08.2024 20:56

Если вы потратили так много времени, это может быть какой-то глупой проблемой. можете ли вы попробовать запустить проект на какой-нибудь другой машине, если это возможно?

Bhavesh Audichya 08.08.2024 20:57

Не обошлось и без установки AS, Flutter, Android SDK и всего остального. :-) Итак, сначала я начну с вашего предыдущего предложения.

Gábor 08.08.2024 21:07

К сожалению, ничего. Он передает его flutter.bat, но больше в журнале ничего не появляется.

Gábor 08.08.2024 21:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

В конце концов, есть способ посмотреть журнал. Я сказал, что, среди прочего, пытался изменить gradlew.bat. Наконец-то это сработало, но вам нужно добавить --debug, --verbose или --scan в конце, после %CMD_LINE_ARGS%. Когда я впервые попробовал, я поставил дополнительные переключатели после GRADLE_OPTS, так как это место показалось мне логичным. Это работает только в конце. Также добавьте аргумент запуска -v в «Редактировать конфигурации», и вы его получите. На самом деле вы получаете так много, что это может переполнить буфер консоли.

Итак, когда я добавил --scan, я получил записи журнала. Но более того, проект вернулся в нормальное состояние, он скомпилировался. И с тех пор он компилируется. И хотя я рад, что это так, у меня нет ощущения, что я это исправил...

Другие вопросы по теме

«Не удалось выполнить задачу ':react-native-gradle-plugin:compileKotlin'» при обновлении с 0.72.5 до 0.74.2
Минимальная поддерживаемая версия Gradle — 8.7. Текущая версия 8.2. Андроид
Модуль был скомпилирован с несовместимой версией Kotlin. Двоичная версия метаданных — 1.8.0, ожидаемая версия — 1.6.0
Почему Android Studio Koala до сих пор не поддерживает AGP 8.5
Анализ кода недоступен (конфигурация сценария не была получена) при создании пользовательского файла gradle.kts
Ошибка KSP при обновлении проекта Android до Compose Compiler 2.0.0
App_plugin_loader Плагин Gradle обязательно использует метод Apply script, который устарел и будет удален в будущем выпуске. Ошибка во flutter
Как запустить основной класс в задаче gradle в многомодульном проекте Android?
Реализация базы данных Realm в Android Studio 2024
Обновите версию оболочки Gradle до 8.6 и версию плагина Android Gradle до 8.4.1, чтобы моя студия Android не смогла создать файл .apk выпуска