You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将GPLv3许可证添加到Flutter关于对话框的LicensePage中?

Flutter应用GPLv3许可证在LicensePage不显示的解决办法

Flutter默认的许可证自动收集机制仅针对pub依赖包的LICENSE文件,项目根目录自身的LICENSE不会被自动纳入LicenseRegistry,需要手动完成以下步骤:

  • 将LICENSE文件添加到资源清单
    在项目的pubspec.yaml中声明该文件为资源,确保可通过rootBundle读取:

    flutter:
      assets:
        - LICENSE
    
  • 手动注册许可证内容
    在应用初始化阶段(比如main函数中),读取LICENSE文件内容并注册到LicenseRegistry:

    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      // 读取根目录的LICENSE文件
      final gplLicense = await rootBundle.loadString('LICENSE');
      // 注册自定义许可证
      LicenseRegistry.addLicense(() async* {
        yield LicenseEntryWithLineBreaks(
          ['你的应用名称'], // 填写你的应用名称
          gplLicense,
        );
      });
      runApp(const MyApp());
    }
    
  • 验证AboutDialog调用
    确保showAboutDialog调用逻辑正常,示例代码:

    showAboutDialog(
      context: context,
      applicationName: '你的应用名称',
      applicationVersion: '1.0.0',
    );
    

完成以上操作后,再次打开AboutDialog的LicensePage就能看到GPLv3许可证内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:57:04