Start Debugging
2023-08-18 Обновлено 2023-11-05 flutter Edit on GitHub

Flutter Исправляем 'The getter accentColor isn't defined for the class ThemeData'

Наиболее вероятная причина этой ошибки — обновление Flutter (flutter upgrade), которое привело к несовместимости с вашим кодом или зависимостями проекта. Свойство Theme.of(context).accentColor устарело начиная с Flutter 1.17 и полностью удалено в текущей версии, отсюда и ошибка. Чем заменить Или, если...

Error: The getter 'accentColor' isn't defined for the class 'ThemeData'.
 - 'ThemeData' is from 'package:flutter/src/material/theme_data.dart' ('/C:/flutter/packages/flutter/lib/src/material/theme_data.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'accentColor'.
        themeData.textTheme.headline5?.copyWith(color: themeData.accentColor);

Наиболее вероятная причина этой ошибки — обновление Flutter (flutter upgrade), которое привело к несовместимости с вашим существующим кодом или зависимостями проекта.

Свойство Theme.of(context).accentColor помечено устаревшим начиная с Flutter 1.17 и полностью удалено в текущей версии, отсюда и ошибка.

Чем заменить

Theme.of(context).colorScheme.secondary

Или, если вы настраиваете внешний вид material-компонентов:

final ThemeData theme = ThemeData();
MaterialApp(
  theme: theme.copyWith(
    colorScheme: theme.colorScheme.copyWith(secondary: myColor),
  ),
)

Если проблема в зависимостях проекта

Ошибка может приходить не из вашего кода, а из одной из зависимостей проекта, например material. В этом случае можно попробовать обновить зависимости.

flutter pub upgrade

Это обновит зависимости в рамках ограничений pubspec.yaml. Если нужно выйти за эти ограничения (например, перейти на новую мажорную версию), просто:

flutter pub upgrade --major-versions

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад