はじめに
3連休の最終日、ようやくアプリを起動できました。動作にも問題なさそうなので、あとは再申請をするだけです。
連休中の状況については、以下のリンクからご覧ください(技術的な内容はリンク先には記載していません)。
【連休1日目】
ポリシー違反の指摘(「アプリは Android 14(API レベル 34)以降を対象とする必要があります」)に対応することを報告しました。
この時は、そんなに時間はかからないだろうと思っていましたが、実際にはもう3連休も終わりです…。
初心者向け!AndroidのバージョンとAPIレベルってなに? - 中小企業のITサポート
【連休2日目】
Android Studioをアップデートしましたが、安定版ではなく、なぜかプレビュー版のLadybugをインストールしてしまいました…。
Android Studio のバージョンアップをしただけなのに - 中小企業のITサポート
今日は、Android 14(APIレベル34)でFlutterアプリを起動する際に発生した問題と、その解決方法について書き残しておきます。
1. 開発環境
Android Studio Ladybug (version 2024.2) Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11) gradle 8.5 Android Gradle プラグイン (AGP) 8.1.0
2. Gradleのバージョンを上げる
Android Studioをアップデートした際、バンドルされているJavaのバージョンが上がったため、Gradleのバージョンも更新しました。
gradle-wrapper.properties
変更前
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
変更後
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip
3. Android Gradle プラグイン (AGP)のバージョンを上げる
Gradleのバージョンを更新したため、AndroidのGradleプラグインのバージョンも合わせて更新しました。
settings.gradle
変更前
plugins { id "com.android.application" version "7.2.2" apply false }
変更後
plugins { id "com.android.application" version "8.1.0" apply false }
4. namespaceの記述箇所変更
AGP8.0以降では、namespaceの記述が AndroidManifest.xml から app/build.gradle (Gradleビルドファイル)に変更されたため、これを追記しました。
app/build.gradle
変更前
記載なし
変更後
android { defaultConfig { namespace 'com.example.myapplication' } }
5. 「Namespace not specified」のエラー対応
使用しているFlutterプラグインが対応していないことが原因だったため、回避策を追加しました。
android/build.gradle
変更前
記載なし
変更後
allprojects { subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { if (namespace == null) { namespace project.group } } } } } }
下記サイトを参考にさせていただきました。ありがとうございます。
まとめ
今回の対応を通じて、Gradleについて学ぶ良い機会となりました。特に、Gradleのバージョンを7から8に変更する際に破壊的な変更が発生しており、思いつく限りの方法を試しながらの対応となりました。最終的には上記に記載した内容だけで起動できましたが、ここに至るまでには数々の失敗を繰り返しました。この経験が、何かしら皆さんのお役に立てれば嬉しいです。