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

Jam*_*mes 12 colors dart android-studio flutter

我正在整理一个演示应用程序,以帮助我学习 Flutter 的各种功能,但目前,我遇到了以前从未遇到过的重复错误。

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

“颜色”类型不是“材料颜色”类型的子类型

这是异常和控制台输出:

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...
Run Code Online (Sandbox Code Playgroud)

这似乎表明问题出在main.dart文件中,文件在这里:

import 'package:demoapp/screens/home/home_page.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Demo App',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primaryColor: Colors.blue[200],
      ),
      home: HomePage(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

目前,ThemeData()我正在使用primaryColor: Colors.blue[200]. 出于某种原因,如果我将其更改primarySwatch: Colors.blueprimaryColor: Colors.blue[200]. 我以前从未发生过这种情况,我不确定为什么它会在模拟器中的应用程序的第一个版本中不断发生。为什么会发生这种情况?有没有办法排序?

我正在使用,primaryColor因为我想使用特定的蓝色阴影作为主要颜色。如果这是 的问题primaryColor,是否有可能使用primarySwatch并能够选择系列中的特定颜色?

Abd*_*rek 15

如果你想使用十六进制的自定义颜色,比如这种颜色 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,
),
Run Code Online (Sandbox Code Playgroud)