[Flutter]Androidアプリのリリース前レポートで 「java.lang.StackOverFlow」というクラッシュエラーが出た場合の対処法

これは、FlutterのアプリをAndroidアプリとしてリリースしようとして、Google Play Consoleにアプリをアップロードして、Google先生に機械でバグがないかをチェックしてもらう「リリース前レポート」機能を使う際に起こる事象なのですが、

デバッグではちゃんと動いていたはずなのに、なぜかリリース前レポートの段階で

java.lang.StackOverflowError: stack size **KB

という謎のエラーが出て、アプリがクラッシュしてしまうということが起こる可能性があります。

blank

この「StackoverFlow」エラーというのは、プログラムを実行する際に割り当てられるメモリを文字通りオーバーしてしまうエラーのことで、関数・メソッドを再帰的に呼び出した際に起こり得る事象のようです。

Thrown when the depth of the stack of the running program exceeds some platform or VM specific limit. Typically, this will occur only when a program becomes infinitely recursive, but it can also occur in correctly written (but deeply recursive) programs.

(スタックの詳しい説明はこちらから)

ですので、自分のプロジェクトを再度点検して、関数・メソッドの再帰呼び出しがないかチェックしないといけないと思ってしまうかもしれませんが、結論から言うと、このエラーは気にする必要ありません。

理由は、「リリース前レポート」機能がFlutterの充分に対応していないことに伴って発生しているエラーだからとのことです。Flutterのissueにも上がっていました。

blank

(以下、機械翻訳)

Google Play Pre-Launchテストツールについて少し調べてみたところ、いくつかのことがわかりましたのでご紹介します。

Google PlayのプレローンチテストはFirebase Test Labが提供しており、アプリのテストにはRoboTestingを使用している。FlutterはOpenGLを使用しており、RoboTestingとは互換性がないため、RobotestingフレームワークはFlutterアプリをまだサポートしていません。

プレローンチテストでテストが実行されるデバイスは、アクセシビリティが有効になっていなかったり、UIAutomatorをサポートしていなかったりする場合があります。そのため、ロボテストが実行される際に、これらの点を探し、見つからなかったため、テストの失敗やクラッシュにつながることがあります。そのため、UiAutomatorやAccessibilityNodes、AccessibilityInteractionに関連したクラッシュが発生することがあります。

要するに、Google Play Pre-Launchで使用しているツールはFlutterアプリを完全にサポートしていないため、このようなクラッシュが発生するのです。この問題の例として、#32062 と #35341 を参照してください。

また、google_maps_flutter と UiAutomator を使用した同様のクラッシュがあり、これは #74197 に関連している可能性があり、あなたのクラッシュリストの1つと一致します。

ご報告いただいたクラッシュは、Flutter フレームワークやプラグイン側の問題ではなく、Google Play プレローンチツールでの Flutter アプリのサポートが限られている、またはサポートされていないことが原因なので、先にこの件を終了します。ツールのレポに関連する問題が報告されているかどうかを確認し、更新のためにそこをフォローアップすることをお勧めします。

(詳しくは、下の動画で解説していますので、よろしければご覧ください)

blank

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
blank

はじめての方へ

blank
みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

おすすめコンテンツ

プログラミングを学ぶとどんないいことがあるのか
みんプロ式を選んでいただける6つの理由
ぼくの人生挫折ヒストリー(代表者プロフィール)
ぼくのプログラミング挫折ヒストリー(無料メール講座・6大特典付き)
今最も注目のアプリ開発ツール「Flutter(フラッター)」ミニ動画講座

みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎
blank
blank

みんプロ作成アプリ

blank
blank
blank
blank

TOP