在Flutter的最终构建apk中,google_fonts包无法正常工作。在调试模式下它运行良好,但一旦我构建并安装最终apk,它只显示普通字体。
在Flutter的最终构建apk中,google_fonts包无法正常工作。在调试模式下它运行良好,但一旦我构建并安装最终apk,它只显示普通字体。
可能是由于网络权限问题,Google字体需要使用网络访问,如果在您的项目中未应用该权限,则在安装应用程序时它将无法工作。
为此,您需要向文件AndroidManifest.xml添加以下行; yourappname / android / app / src / debug / AndroidManifest.xml
您需要添加的行:
<uses-permission android:name="android.permission.INTERNET"/>
google_fonts: ^2.0.0
flutter: 2.2.0
上,在另一个项目中没有添加此权限,但在那种情况下仍然有效。无论如何,感谢 @Lunedor。 - Pathik Patel我不认为这是互联网问题。大多数情况下,使用Flutter包的字体在Pubspec文件中存在错误。
请检查您的Pubspec.yaml文件。确保您的Google字体包是以这种方式格式化的
version: 1.0.0+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
google_fonts: ^1.1.0
flutter:
assets:
- google_fonts/ # you only need this line and nothing in the fonts area per https://pub.dev/packages/google_fonts
要使用Google Fonts,您必须为其初始化许可证。
假设您正在使用此内容:
fontFamily: GoogleFonts.shadowsIntoLight().fontFamily,
google_fonts
的文件夹。=> 现在将.ttf
和OFL.txt
文件(位于提取的文件夹中)
放入之前创建的google_fonts
文件夹中。
[注意:只有OFL.txt
对于您的所有字体就足够了。]
main.dart
文件:=> 在void main() {runApp(MyApp());}
内添加以下行:
void main() {
LicenseRegistry.addLicense(() async* {
final license = await rootBundle.loadString('google_fonts/OFL.txt');
yield LicenseEntryWithLineBreaks(['google_fonts'], license);
});
runApp(...);
}
并导入以下内容:
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
flutter build apk --release
<uses-permission android:name="android.permission.INTERNET"/>
Google fonts
使用网络,所以您可能需要更新 manifest.xml
文件中的依赖项。
<uses-permission android:name="android.permission.INTERNET"/>
Google字体
添加到资产文件夹中,使其在离线
状态下可用。// Online Code
Text(
'This is hammersmithOne from Google Font'
style: GoogleFonts.hammersmithOne(),
),
到
// Offline Code
Text(
'This is hammersmithOne from Google Font',
style: TextStyle(fontFamily: 'hammersmithOne') // This is loaded from assets
),
如需进一步参考,请参阅this文章。