[Flutter/dart] google_fontsからnotoSansJpが消えた?
現象
自分はflutterでアプリを作る際、日本語のフォントにはgoogle_fontsのnotoSansJpを使用しています。
先日、google_fontsをバージョン1系から2系にアップデートしたところ、notoSansJpを指定しているところが急にコンパイルエラーになりました。エラーメッセージは「google_fontsにnotoSansJpなんていうフォントはない」というようなことを言っています。
原因
理由は不明ですが、バージョン2以降からnotoSansJpは消えてしまったみたいです。ソースコードを見てもドキュメントを見ても載っていません。
対応案
1 google_fontsのをダウングレード
これができるならば一番手っ取り早いです。
ただ、自分の場合は、他のライブラリとの依存性の都合でバージョン2以上が必要でしたので、次の対応案2の方を採用しました。
2 カスタムフォントとしてインストール
flutterではカスタムフォントを導入することができます。notoSansJpをカスタムフォントとして導入しましょう。
1 notoSansJpのotfを入手
例えば以下のサイトなどでダウンロードできます。
2 プロジェクト内にfontsフォルダを作成し、入手したotfファイルをコピー

3 pubsec.yamlに下記を追記
flutter:
fonts:
- family: NotoSansJP
fonts:
- asset: fonts/NotoSansJP-Regular.otf
- asset: fonts/NotoSansJP-Medium.otf
- asset: fonts/NotoSansJP-Bold.otf
4 TestStyleで指定
Text(
'test',
TextStyle(
fontFamily: 'NotoSansJP'
)
)
はまりどころ
自分は以下の点でハマってしまったので注意してください。
・pubsec.yamlのスペースの数はちゃんと正確に
・中華フォントにしないように
flutterで日本語フォントを使おうとすると、中華フォントになってしまいます。このページ の対応を行なって中華フォントにならないようにしてください。この対応がしてないとnotoSansJpにしても中華フォントになってしまいます。
・MediumやBoldもちゃんと入れる
複数のFontWeightを使う場合は対応するotfを全て入れましょう。僕の場合はMediumとBoldを使用しているので、上記のように3つのotfファイルがfontsフォルダ内にあります。
最新記事
すべて表示現象 アプリ内にAdmobを追加して、アプリを起動すると、下記のエラーが発生 java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider 原因 AndroidManifestの書き方が誤っていた。 <meta-data>はactivityと同じ階層にある必要が
概要 Uriを持っていて、Urlに変換したい場合の方法で少し手惑ったので共有します 方法 String url = uri.toString(); これだけです。 最後に ページを開くだけだとUriでもUrlでもいいんですが、WebViewはUrlを要求してくるんですよね。
問題 以前、日本語を含むURLを開くためには、エンコーディングしてやる必要がある、という記事を書きました。 しかし、すでにエンコーディングされているURLを再度エンコーディングしてしまうと、別のURLになってしまいます。 つまり、URLを開く処理の前に、 ・エンコーディングが必要なURLか ・すでにエンコーディングがされているか を判定しないといけないことになります。これは中々煩雑な処理です。 発