4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

flutterにてENVied利用時にジェネレーターがエラーを出した時の対処法

Posted at

概要

  • FlutterにてENViedパッケージを利用しようとした際、env.g.dartの生成時エラーを吐いたのでその解決法の共有目的で書きます。
  • 日本語の記事を見つけられなかったので、誰かのお役に立てれば。(Qiita初投稿なので優しく見守ってください。)

環境

MacBook Pro 2018,13-inch
Visual Studio Code
Flutter 3.16.5

起こったこと

Flutter(Dart)にてAPIキー等の秘匿化を行おうと思い、以下の記事を参考にしながらENViedパッケージの設定を進めていました。
FlutterでのAPIキーの安全な管理

しかし、記事の4における⑤の部分で、ジェネレーターの実行時に下記のエラーを吐きました。

Terminal
Environment variable not found for field `key`.
package:ルートディレクトリ/env/env.dart:8:17

上記の参考記事の通り、env.dartは以下のように記載しています。

env.dart
import 'package:envied/envied.dart';
part 'env.g.dart';

@Envied(path: '.env')
abstract class Env {
  @EnviedField(varName: 'KEY', obfuscate: true)
  static String key = _Env.key;
}

エラーメッセージを見てもよくわからんのと、調べても同様の症状に悩んでる人が見つからずに格闘。

解決方法

色々調べた結果、以下のissueに辿り着きました。
Environment variable not found for field" if build_runner hasn't been run without envied

英語を頑張って読んで要約すると、次のようなことらしいです。

  • enviedコードを利用せずに一度もbuid_runnerを実行していない状態で実行するとこのエラーが出る
  • 解決方法としては、一度このenv.dartをコメントアウトしてからbuid_runnerを実行。その後再びenv.dartを復元してからbuid_runnerを実行する

自分はENViedを利用するまでに一度もbuid_runnerを実行していなかったので、この原因だと思い試したところ解決しました。

まとめ

同様の症状で苦しんでいる誰かの助けになれば幸いです。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?