2025年8月31日から、Google Play Storeでは新しいアプリとアップデートにAndroid 15(API レベル35)以上への対応が必要になりました。
これには、targetSDKだけでなく、minSDK35への対応も含まれます。
この記事では、FlutterアプリをminSDK35に対応させる具体的な手順を解説します。
実際のコード変更例も含めて、スムーズに移行できるように説明します。
Google Play Storeの新要件
まず、Googleが設定した新しい要件を確認しましょう。
2025年8月31日以降の要件
- 新しいアプリとアップデート:Android 15(API レベル35)以上が必須
- 既存アプリ:Android 14(API レベル34)以上をターゲットにする必要がある
- minSDK35への対応も推奨される
- 対象外:Wear OS、Android Auto、Android TVアプリは引き続きAndroid 14(API レベル34)以上
延長申請は2025年11月1日まで可能ですが、早めの対応をおすすめします。
対応手順
1. Flutter SDKの更新
まず、Flutter SDKを最新バージョンにアップデートします。
flutter upgrade
flutter doctor -v
Flutter 3.24以降であれば、最新のAndroid APIレベルに対応しています。
2. build.gradleファイルの編集
プロジェクトのandroid/app/build.gradle
ファイルを開き、以下の設定を変更します。
android {
compileSdk 35
defaultConfig {
applicationId "com.example.yourapp"
minSdk 35 // minSDK35に設定
targetSdk 35 // targetSDK35に設定
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
}
重要なポイント
compileSdk
:アプリのコンパイルに使用するSDKバージョンtargetSdk
:Google Play Storeの要件で35に設定が必須minSdk
:アプリがインストール可能な最低SDKバージョン(35に設定)
3. プロジェクトルートレベルのbuild.gradleの更新
プロジェクトルートのandroid/build.gradle
ファイルも更新が必要です。
buildscript {
ext.kotlin_version = '1.9.24' // Kotlinバージョンを最新に
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.4.2' // Gradle Pluginを最新に
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Android Studioを開いて、必要なSDKをインストールします。
Tools
→SDK Manager
を開くSDK Platforms
タブでAPI レベル35を選択してインストールSDK Tools
タブで最新のビルドツールを選択してインストール
4. Gradle Wrapper の更新
android/gradle/wrapper/gradle-wrapper.properties
ファイルでGradleのバージョンを更新します。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
5. Android SDK Manager の更新
pubspec.yaml
ファイルで使用している依存関係を最新版に更新します。
flutter pub upgrade
古いプラグインがAPI レベル35に対応していない場合があるので、各プラグインのドキュメントを確認してください。
6. 依存関係の更新
設定変更後は、キャッシュをクリアして再ビルドします。
flutter clean
flutter pub get
flutter build apk --release
7. プロジェクトのクリーンビルド
Android 15対応デバイスまたはエミュレーターでテストを実行します。
flutter test
flutter run --release
特に以下の点を重点的にテストしてください
- 権限管理の動作
- UIの表示(エッジツーエッジ対応)
- プラグインの動作確認
8. 動作確認とテスト
実際のコード変更例
以下は実際のプロジェクトでの変更例です:
frontend/android/build.gradle の変更例
// 変更前
buildscript {
ext.kotlin_version = '1.8.22'
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0'
}
}
// 変更後
buildscript {
ext.kotlin_version = '1.9.24'
dependencies {
classpath 'com.android.tools.build:gradle:8.4.2'
}
}
gradle-wrapper.properties の変更例
# 変更前
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
# 変更後
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
よくある問題と対処法
エラー:「uses-sdk:minSdkVersion cannot be smaller than…」
このエラーは、依存関係のプラグインがminSDK35よりも高いSDKを要求している場合に発生します。
対処法
- 使用しているプラグインを最新版に更新する
- minSDK35に対応していないプラグインは代替手段を検討
- プラグインのドキュメントでminSDK要件を確認する
エラー:「Namespace not specified」
Android Gradle Plugin 8.0以降では、namespaceの明示的な指定が必要です。
対処法 android/app/build.gradle
にnamespaceを追加します。
android {
namespace "com.example.yourapp"
compileSdk 35
// 以下省略
}
エラー:「Edge-to-edge may not display for all users」
Android 15のエッジツーエッジ表示に関する警告です。
targetSDK35以降のデバイスでは上部ステータスバーと、下部ナビゲーションバーまでアプリのレイアウト領域となります。
対処法 android/app/src/main/res/values-v35/styles.xml
を作成し、以下を追加します。
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
<item name="android:defaultFocusHighlightEnabled">false</item>
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
</style>
注意:この対応は将来的に非推奨になる可能性があります。
ビルドが通らない場合
以下のコマンドで環境をリセットしてから再試行します。
flutter clean
flutter pub cache repair
flutter pub get
flutter build apk
Gradleの同期エラー
Gradle Wrapper やプラグインのバージョン不整合でエラーが発生する場合
cd android
./gradlew clean
./gradlew build
プロジェクト固有とグローバル設定
プロジェクト固有の設定
特定のプロジェクトだけ設定を変更したい場合は、android/app/build.gradle
を直接編集します。
グローバル設定
すべてのFlutterプロジェクトでminSDK35を使いたい場合は、Flutter SDKのflutter.gradle
ファイルを編集できますが、推奨されません。
新しいプロジェクトを作成する際に個別に設定することをおすすめします。
リリース前のチェックリスト
minSdk
とtargetSdk
が両方とも35に設定されている- Kotlinバージョンが1.9.24以降に更新されている
- Gradle Plugin が8.4.2以降に更新されている
- Gradle Wrapperが8.6以降に更新されている
- 最新のFlutter SDKを使用している
- 依存関係がすべて最新版でminSDK35に対応している
- Android 15エミュレーターでテスト済み
- エッジツーエッジ表示が正常
- 権限要求が正常に動作する
- APKアナライザーで設定確認済み
- namespaceが正しく設定されている
まとめ
Google Play Storeの新要件に対応するには、build.gradle
ファイルのminSdk
とtargetSdk
を両方とも35に変更することが重要です。
また、Gradle関連のファイル(Kotlin バージョン、Gradle Plugin、Gradle Wrapper)も最新版に更新する必要があります。
重要なポイント
- minSDK35に設定することで、Android 15未満のデバイスではアプリをインストールできなくなります
- 必要に応じてエッジツーエッジ表示の対応も実装してください
- namespace の明示的な指定が必要です
早めの対応で、ユーザーに安定したアプリを提供し続けることができます。
何か問題が発生した場合は、公式ドキュメントや各プラグインのGitHubページで最新情報を確認してください。