我没有得到任何错误在正常的Flutter运行,但APK崩溃与以下错误:
E/flutter (18669): [ERROR:flutter/third_party/txt/src/minikin/FontFamily.cpp(184)] Could not get cmap table size!
E/flutter (18669):
F/flutter (18669): [FATAL:flutter/third_party/txt/src/minikin/FontCollection.cpp(95)] nTypefaces == 0
我已经尝试了我在网上找到的所有解决方案:
- 出版规格yaml具有
uses-material-design: true
- 从GoogleFonts下载的字体不能损坏
- 我也试过其他字体都给予同样的错误
- 我已经检查了我的代码,并不认为我有任何错误引用字体
- 多次尝试扑动清洁
pubspec.yaml代码段:
fonts:
- family: Open Sans
fonts:
- asset: Open Sans/OpenSans-Regular.ttf
main.dart代码片段:
theme: ThemeData(
primarySwatch: MaterialColor(0xFF8c7ae6, primarySwatch),
primaryColor: Color(0xFF8c7ae6),
brightness: Brightness.light,
fontFamily: 'Open Sans', // using font
textTheme: TextTheme(button: TextStyle(fontWeight: FontWeight.w400)),
appBarTheme: AppBarTheme(
brightness: Brightness.light,
iconTheme: IconThemeData(color: Color(0xFF8c7ae6))),
primaryColorLight: Color(0xFF9c88ff)),
字体文件位于项目级别的名为“Open Sans”的文件夹中。
4条答案
按热度按时间8gsdolmq1#
删除“Open Sans”之间的空格,使所有位置都是“OpenSans”。
unhi4e5o2#
现在我们总是使用系统默认字体,而在Flutter应用中添加自定义字体非常容易。首先,你需要在你的项目文件夹中创建一个新的文件夹。所以不是在“lib”文件夹中,而是简单地在你的主项目文件夹中。
你可以随意命名这个文件夹,比如“assets”,或者你可以直接命名为“fonts”,我会将它命名为assets,然后在assets文件夹中创建一个“fonts”文件夹。我想将它放在assets文件夹中。
现在我想使用一对夫妇的字体,你会发现一个zip文件附件,其中包括字体,我将在这里使用,例如从“https://fonts.google.com/download?family=Open%20Sans“下载
例如,我在这里引入了两种字体,OpenSans为粗体和常规版本,Quicksands为粗体、浅色、中等和常规版本。
现在添加了这些字体,我们仍然不能在应用程序中自动使用它们。要在应用程序中解锁它们,并将它们包含在Flutter生成的应用程序文件中,最后。您需要转到“pubspec.yaml”文件,这也是您的全局管理工具,如果您向下滚动,您实际上会找到这个注解掉的区域,它已经为您提供了如何添加字体的示例。因此,您只需通过删除散列符号将其注解回去即可。
然后你会看到字体缩进了两个空格,在yaml文件中,空格很重要,你可以在破折号和白色后面定义一个“家族”键,这是字体的名称,我在这里应该与字体的名称相匹配,但理论上这取决于你。
例如在文件pubspec.yml中:
如何从字体中使用:
例如在文件main.dart中:
o7jaxewo3#
您可以使用google_fonts包来获取Google Fonts上可用的所有字体。
将google_fonts包添加到pubspec依赖项中。
在
main.dart
中导入google字体包使用GoogleFonts
ogq8wdun4#
最近我和我的同事一起经历了这个错误,仍然不确定到底是什么修复了它...但是在重新安装了flutter sdk之后,我的同事修复了这个错误(因为cpp文件),而我在升级了flutter版本之后也修复了这个错误。
(This鉴于你已经尝试过Flut0101的答案,顺便说一句,因为这是一个常见的问题)