我们在上一章回中介绍了"程序中的包名等关键信息"相关的内容,本章回中将介绍 关于intl报错的问题。闲话休提,让我们一起Talk Flutter吧。
1. 概念介绍
我们在本章回中介绍的intl是指四百一十回中介绍的AndroidStudio
插件:Flutter Intl
,当时我们遇到不能自动生成多国语言的错误后没有解决,不过我们可以通过错误信息来得知程序有错误,进而手动修改多国语言中的内容。本章回中将介绍相关的错误内容。
2. 错误信息
正常情况下,我们在修改完arb
文件中的字符串后该插件会自动生成与修改内容对应的多国语言字符串。注意修改完时可以点击保存,这时会自动生成,或者等待IDE自动保存。如果生成失败,会报出错误,下面是我遇到的错误信息,大家遇到的可能与我的不同,不过关注IDE下方的message窗口就可以看到错误信息。
/flutsdk/flutter/bin/flutter --no-color pub global run intl_utils:generate
ERROR: Failed to generate localization files.
Rangerror (end): Invalid value: Only valid value is 9: 4
3. 解决方案
我尝试解决此问题,但是无法下手,不过在github上找到了相同的问题,大家可以点击这里查看。
经过分析后,我发现该插件是借助插件intl_utils
来生成多国语言字符的,如果想看到更加详细的错误信息,可以运行以下命令:
flutter pub run intl_utils:generate -v
在git hub上有人给出的万能文案就是清除编译缓冲和pub缓冲,然后重新编译,主要命令如下:
flutter clean
flutter pub cache clean
flutter pub get
flutter pub run intl_utils:generate
我试过这种方法,没有效果,不过该方法可以看作是万能方法,对一些插件报莫名的错误时可以试试。我通过重新创建flutter环境解决了此问题,相当于重新安装了一回该插件,由此可见还是环境有问题,而不是插件自身有问题,这点从github上报问题的时间也可以看出来,2019年5月报的问题到2024年3月官方都没有解决,这么长的时间内,如果真有问题官方肯定解决了。
此外,github上最后一个人也给了解决方法,大家可以试试:
flutter pub run intl_utils:generate -v
flutter packages pub run build_runner build --delete-conflicting-outputs
4. 内容总结
最后,我们对本章回的内容做一个全面的总结:
- 遇到intl插件不能生成多国语言时可以查看错误信息,以免遗漏多国语言中的文字,进而造成没有翻译的现象;
- 对于插件报一些莫名其妙的问题时,可以考虑清除缓冲来解决问题;
- 如果插件不能自动完成工作,可以考虑把插件卸载后再重新安装;
看官们,与"关于intl报错的问题"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!