You need to enable JavaScript to run this app. 使用XD to Flutter插件导出Adobe XD项目报Key参数空值错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

使用XD to Flutter插件导出Adobe XD项目报Key参数空值错误如何解决?

报错原因

该报错是Flutter空安全机制触发的编译错误:

  • 你当前使用的Flutter版本为2.0及以上的空安全版本,要求非可空类型的可选命名参数,必须显式添加required修饰符,或声明为可空类型、指定非空默认值
  • XD to Flutter插件导出的代码仍沿用旧版非空安全的写法,构造函数中的Key key是可选命名参数,没有标记可空也没有加required修饰,不符合空安全语法要求
  • 此外你贴出的导出代码还存在语法结构错误:Widget闭合顺序错乱,末尾存在多余的大括号、逗号等无效符号,也会触发编译报错
解决方法

1. 修复构造函数key参数报错

两种方案二选一即可:

  • 方案一:给key参数加required修饰,修改后构造函数写法:
XDIPhone678SE1({
  required Key key,
}) : super(key: key);
  • 方案二:将key声明为可空类型,修改后构造函数写法:
XDIPhone678SE1({
  Key? key,
}) : super(key: key);

2. 修复导出代码的语法错误

调整业务代码的闭合顺序,删除末尾多余的无效符号,修正后完整代码如下:

import 'package:flutter/material.dart';
import 'package:adobe_xd/pinned.dart';

class XDIPhone678SE1 extends StatelessWidget {
  XDIPhone678SE1({
    Key? key,
  }) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color(0xffffffff),
      body: Stack(
        children: <Widget>[
          Pinned.fromPins(
            Pin(size: 143.0, middle: 0.5),
            Pin(size: 27.0, middle: 0.5),
            child: Text(
              'Hello World!',
              style: TextStyle(
                fontFamily: 'Segoe UI',
                fontSize: 20,
                color: const Color(0xff707070),
              ),
              textAlign: TextAlign.left,
            ),
          ),
        ],
      ),
    );
  }
}

3. 根源性规避方案

将XD to Flutter插件更新到最新适配空安全的版本,后续导出的代码会自动兼容空安全语法,无需手动修改。

内容的提问来源于stack exchange,提问作者winpriv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 20:39:01