Flutter “Type‘Color’不是‘MaterialColor’的子类型每次我在Android Studio的模拟器(Android和iOS)上构建颤振应用程序时都会出现错误

Flutter “Type‘Color’不是‘MaterialColor’的子类型每次我在Android Studio的模拟器(Android和iOS)上构建颤振应用程序时都会出现错误,flutter,android-studio,dart,colors,Flutter,Android Studio,Dart,Colors,我正在组装一个演示应用程序,帮助我学习颤振的各种功能,但目前,我遇到了一个以前从未遇到过的反复出现的错误 每次我在Android Studio中的任何模拟器Android或iOS上构建应用程序时,都会生成一个错误: 类型“Color”不是类型“MaterialColor”的子类型 以下是异常和控制台输出: Launching lib/main.dart on iPhone 11 Pro Max in debug mode... Running Xcode build... Xcode build

我正在组装一个演示应用程序,帮助我学习颤振的各种功能,但目前,我遇到了一个以前从未遇到过的反复出现的错误

每次我在Android Studio中的任何模拟器Android或iOS上构建应用程序时,都会生成一个错误:

类型“Color”不是类型“MaterialColor”的子类型

以下是异常和控制台输出:

Launching lib/main.dart on iPhone 11 Pro Max in debug mode...
Running Xcode build...
Xcode build done.                                           16.9s
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building MyApp(dirty):
flutter: type 'Color' is not a subtype of type 'MaterialColor'
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new?template=BUG.md
flutter:
flutter: The relevant error-causing widget was:
flutter:   MyApp
flutter:   file:///Users/JGolding/Desktop/Desktop/Work/App-and-Web-Development/App-Development/1-Demo-App/demo_app/lib/main.dart:4:23
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      MyApp.build (package:demoapp/main.dart:13:35)
flutter: #1      StatelessElement.build (package:flutter/src/widgets/framework.dart:4291:28)
flutter: #2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
flutter: #3      Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
flutter: #4      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
flutter: #5      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
flutter: #6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
flutter: #7      Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
flutter: #8      RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1028:16)
flutter: #9      RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:999:5)
flutter: #10     RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:942:17)
flutter: #11     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2412:19)
flutter: #12     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:941:13)
flutter: #13     WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:819:7)
flutter: #14     WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:804:7)
flutter: #23     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
flutter: #24     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
flutter: #25     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
flutter: (elided 8 frames from package dart:async and package dart:async-patch)
flutter:
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
Debug service listening on ws://127.0.0.1:60030/z8ejaMsnyI0=/ws
Syncing files to device iPhone 11 Pro Max...

目前,在主题数据中,我使用的是primaryColor:Colors.blue[200]。出于某种原因,如果我将其更改为primarySwatch:Colors.blue,然后再次更改为primaryColor:Colors.blue[200],应用程序就会生成。这以前从未发生在我身上,我不知道为什么在模拟器中第一次构建应用程序时会发生这种情况。为什么会发生这种情况?有办法把它分类吗

我使用原色,因为我想使用特定的蓝色作为主色。如果这是primaryColor的问题,是否有办法使用primarySwatch并能够选择族中的特定颜色?

切换此选项

theme: ThemeData(
  primaryColor: Colors.blue[200],
),
home: HomePage(),


如果要使用十六进制的自定义颜色,如0xFF0E7AC7

const MaterialColor kPrimaryColor = const MaterialColor(
  0xFF0E7AC7,
  const <int, Color>{
    50: const Color(0xFF0E7AC7),
    100: const Color(0xFF0E7AC7),
    200: const Color(0xFF0E7AC7),
    300: const Color(0xFF0E7AC7),
    400: const Color(0xFF0E7AC7),
    500: const Color(0xFF0E7AC7),
    600: const Color(0xFF0E7AC7),
    700: const Color(0xFF0E7AC7),
    800: const Color(0xFF0E7AC7),
    900: const Color(0xFF0E7AC7),
  },
);

theme: ThemeData(
    primarySwatch: kPrimaryColor,
),

primaryColor:Colors.blue[200]应该可以工作。我尝试了MyApp类扩展无状态小部件{@override Widget BuildContext上下文{返回MaterialApp标题:“演示应用”,DebugShowCheckedModelBanner:false,主题:主题数据primaryColor:Colors.blue[200],home:ScaffoldappBar:AppBar,body:Text'FOO',;}}在中,它可以正常工作-注意,我添加了Scaffold作为home属性tanks-guys。我就是这么想的。它没有理由不起作用。事实上,一旦我将primaryColor更改为primarySwatch,构建时抛出另一个错误,然后返回primaryColor,它就会起作用。这可能只是最近的日期问题,或者是模拟器/模拟器的问题?颤振版本命令的输出是什么?你运行我修改过的代码了吗?如果是,结果是一样的?是的,我运行了你的代码,一点问题也没有。这很奇怪。因此,颤振版本的输出为颤振1.12.13+热修复。8•通道稳定•https://github.com/flutter/flutter.git 框架•4周前版本0b8abb4724•2020-02-11 11:44:36-0800引擎•版本e1e6ced81d工具•Dart 2.7.0。此代码将删除异常,但是这两种颜色是不相等的。这段代码只能是一种自定义颜色
theme: ThemeData(
  primaryColor: Colors.blue,
),
home: HomePage(),
const MaterialColor kPrimaryColor = const MaterialColor(
  0xFF0E7AC7,
  const <int, Color>{
    50: const Color(0xFF0E7AC7),
    100: const Color(0xFF0E7AC7),
    200: const Color(0xFF0E7AC7),
    300: const Color(0xFF0E7AC7),
    400: const Color(0xFF0E7AC7),
    500: const Color(0xFF0E7AC7),
    600: const Color(0xFF0E7AC7),
    700: const Color(0xFF0E7AC7),
    800: const Color(0xFF0E7AC7),
    900: const Color(0xFF0E7AC7),
  },
);

theme: ThemeData(
    primarySwatch: kPrimaryColor,
),