Skip to content

targetSdkVersion 35 へのアップグレード

問題の概要

Android Studioで開発しているアプリのtargetSdkVersionを34から35に変更する際、次の警告メッセージが表示されます:

"エディターでtargetSdkVersionを34から35に変更しました。この変更に伴う動作の変更については必ずドキュメントを参照してください。Android SDK Upgrade Assistantが安全な移行を支援します。"

多くの開発者はこのメッセージに戸惑います:

  • コードに実際の問題が存在するのか判断できない
  • メッセージの消える条件が不明
  • 「Android SDK Upgrade Assistant」の実体が不明瞭

メッセージの正体と意味

この通知は標準的な教育目的の警告で、コードが壊れていることではなく潜在的な非互換性に関する警告を意味します。

主なポイント:

  1. 新しいAPIレベルごとにシステム動作・権限・利用不可APIが変更される可能性がある
  2. メッセージは「問題あり」ではなく「互換性検証が必要」という注意喚起
  3. 表示は自動消去せず、開発者のアクションが完了するまで継続
  4. Android 14 (API 35) の動作変更一覧の確認が必要

実践的手順: 確実にアップグレードする方法

ステップ1: 公式ドキュメントの確認

API 35での変更点を網羅的にチェック:

markdown
- [Android 14のメジャー変更点](https://developer.android.com/about/versions/14)
- [targetSdkVersionごとの動作差異](https://developer.android.com/guide/topics/manifest/uses-sdk-element)

ステップ2: アプリ動作のテスト

具体的な検証項目例:

java
// 許可の変更が必要なケースの例
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
    // 新たな権限チェックロジックの実装が必要
    checkNewRuntimePermission();
}

効率的なテスト方法

  1. Developer OptionsStrict Modeを有効化
  2. adbで変更点を強制的に適用:
    adb shell am compat enable [変更ID] [パッケージ名]
  3. エミュレーターでAndroid 14の動作をシミュレート

ステップ3: 警告メッセージを消す方法

メッセージは以下の条件で消去:

Android SDK アップグレードアシスタントの活用

Android StudioのTools > SDK Manager > SDK Toolsでインストール可能ですが、本質は動作変更を中心としたガイダンスシステムです:

主な機能

ツールUIの概念図

  1. 変更が必要なモジュールの特定
  2. 影響範囲の階層的な可視化
  3. ドキュメントへの直接リンク提供
  4. APIレベルごとの差分比較レポート

注意点

「ワンクリック修正」機能は存在せず、コード変更は開発者自身が行う必要があります。ツールは問題箇所の特定支援にとどまります。

よくある質問

Q: ビルド成功でもこの警告は消えない?

A: 正常です。メッセージはコード修正の有無に関わらず、targetSdkVersionの変更を検知すると表示されます。

Q: メッセージを無視してリリース可能か?

A: 技術的には可能ですがリスクが伴います:

Q: Android 14特有の必須変更点は?

A. 特に注意すべき変更点:

  • 動的コードロードの制限強化
  • バックグラウンドでのフル通知権限必須化
  • 暗黙的ブロードキャストの制限拡大

ベストプラクティス

  1. targetSdkVersion変更 → 即時テスト/検証開始
  2. 警告メッセージを 進捗管理指標として活用
  3. サポートライブラリのプレビュービルドを活用:
    kotlin
    // build.gradle.kts例
    dependencies {
        debugImplementation("androidx.compose.ui:ui-tooling-preview:1.7.0-beta03")
    }
  4. 段階的アップグレード戦略:

最新の動作変更情報はAndroid Developers公式サイトで常に確認してください。