如何将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
相关产品推荐
相关产品推荐

