Flutter アプリ

【Flutter】google_fonts実装時のエラーの対処方法

Flutterでは何もしなければデフォルトのゴシック系のfontが表示されますが、fontを変えたい場合google_fontsを使うと便利です。

しかし、筆者はgoogle_fontsをインストールし、MaterialApp内にGoogleFontsと記述したら、以下のエラーメッセージが表示され、アプリが起動しませんでした。

google_fonts_base.dart:317:42: Error: Type 'Uint8List' not found.
bool _isFileSecure(GoogleFontsFile file, Uint8List bytes) {

本記事では、このエラーの対処方法をお伝えします。

本記事の想定読者

  • Flutterでアプリを開発している人
  • アプリのフォントを変えたい人

対処方法

Uint8Listは、Dartのdart:typed_dataパッケージに含まれる型ですが、一部のバージョンのGoogle Fontsパッケージでは、List<int>が代わりに使用されるように変更されました。そのため、Uint8ListList<int>に変更することで問題が解決します。

具体的には、C:\Users\ユーザー\flutter.pub-cache\hosted\pub.dartlang.org\google_fonts-4.0.4\lib\srcgoogle_fonts_base.dartのファイルを修正します。

変更前

bool _isFileSecure(GoogleFontsFile file, Uint8List bytes) { # ここ
  final actualFileLength = bytes.length;
  final actualFileHash = sha256.convert(bytes).toString();
  return file.expectedLength == actualFileLength &&
      file.expectedFileHash == actualFileHash;
}

変更後

bool _isFileSecure(GoogleFontsFile file, List<int> bytes) { # ここ
  final actualFileLength = bytes.length;
  final actualFileHash = sha256.convert(bytes).toString();
  return file.expectedLength == actualFileLength &&
      file.expectedFileHash == actualFileHash;
}

以上です。参考にしていただければ幸いです。

-Flutter, アプリ