質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.59%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

解決済

1回答

125閲覧

flutterでエラー表示を無くす方法について

hase744

総合スコア57

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

0クリップ

投稿2023/09/02 07:37

実現したいこと

flutterでエラー表示を無くしたいです。

前提

flutterでアプリを作成しているのですがSharedPreferencesでnullを取得するとエラー画面になります。
このエラー画面自体は1秒ほどで収まり正常な画面になるのですが、気になります。
審査で落ちる可能性もあるのでできる限り回避したいです。エラーメッセージなどは特にありません。
イメージ説明

エラーメッセージ

該当のソースコード

dart

1import 'package:flutter/material.dart'; 2import 'package:http/http.dart' as http; 3import 'package:shared_preferences/shared_preferences.dart'; 4import 'home_page.dart'; 5 6class FirstPage extends StatefulWidget { 7 const FirstPage({super.key, required this.title}); 8 9 final String title; 10 11 12 State<FirstPage> createState() => _FirstPageState(); 13} 14 15class _FirstPageState extends State<FirstPage> { 16 17 void initState() { 18 super.initState(); 19 fetchData(); 20 } 21 22 23 Widget build(BuildContext context) { 24 return Scaffold( 25 //省略 26 ); 27 } 28 29 Future<void> fetchData() async { 30 //ここ 31 final prefs = await SharedPreferences.getInstance(); 32 bool isFirstRun = prefs.getBool('is_first_run') ?? true; 33 //省略 34 } 35} 36

試したこと

エラーハンドリングを実装しましたが、そもそもエラー扱いでないので変わりません

try { final prefs = await SharedPreferences.getInstance(); bool isFirstRun = prefs.getBool('is_first_run') ?? true; } catch (e) { print('エラーが発生しました: $e'); }

補足情報(FW/ツールのバージョンなど)

Dart SDK version: 3.0.6 (stable) (Tue Jul 11 18:49:07 2023 +0000) on "macos_x64"
Pixel 6 Pro API 32

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

guest

回答1

0

ベストアンサー

画面にそのエラーが表示されるのはbuild時に例外(nullアクセス)が発生してbuildが継続できなかった場合です。fetchData内でのエラーではないとも思います。しばらくしたら消えるとのことなので、fetchDataが完了する前にそのデータにアクセスしているんじゃないでしょうか?

VSCで開発している場合は、ブレークポイントのAll Exceptionsにチェックを入れておくとcatchされていても例外が発生した時点でブレークするので問題個所がすぐわかると思いますよ(Android Studioでも同様のがあったはず)。

投稿2023/09/04 12:49

Shunly

総合スコア81

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.59%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。