Android API35対応
- ye
- 7月26日
- 読了時間: 2分
先日、Play Consoleこんなメッセージが届きました。
調べたところ、これは「ターゲットSDKが古いので更新しなさい」、というメッセージのようですね。

確かに2年以上前に開発したアプリなので、その間AndroidOSも更新されていたりするので、対応しないといけません。しかも二ヶ月後くらいには「措置」が発動するようで戦々恐々です。具体的にどんなことが起きるのか明記されていないのがさらに怖い。。。
下記に具体的にどんな対応をしたのか記載します。
SDKバージョンを35にする
下記赤枠の34を35に変更します。

対応するプラグインのバージョンを更新する
gradle(プロジェクト)で、この2つのプラグインを最新バージョンに更新
com.google.gms.google-services
plugins {
id 'com.android.application' version '8.5.0' apply false
id 'com.android.library' version '8.5.0' apply false
id 'org.jetbrains.kotlin.android' version '2.1.0' apply false
id("com.google.gms.google-services") version '4.4.3' apply false}
対応するdependenciesのバージョンを更新する
gradle(App)でplay-services-adsを最新バージョンに更新
com.google.android.gms:play-services-ads
dependencies {
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.github.PhilJay:MpAndroidChart:v3.0.2'
implementation 'com.google.android.gms:play-services-ads:24.5.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation "com.airbnb.android:lottie:3.4.0"
implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
implementation("com.google.firebase:firebase-analytics")
}
これでビルドが通るはずです。
ちなみにSDK35はEdge-To-Edgeという思想のもと開発されたようで、
AppbarやToolbarなどちょっと前の(?)Androidアプリにあったような画面上のバーが使えなくなっています。
要は画面全体にアプリの画面を表示して視認性を高めたり、画面サイズを最大限活かすような作りになったという感じです。
APIバージョンごとに画面構成を調整(Edge-To-Edge対応)
私のアプリではToolbarを使用して戻るボタンなどを実装していたのでかなり影響を受けました。API30で作成したアプリをAPI36で起動したところ、上のツールバーの部分が消えていて、アプリアイコンと画面内容が被ってしまい、これではリリースできないということでコードも追加しました。
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
ここでAPI34より大きいAPIバージョンかどうかの条件式となります。
API35以上と34以下で画面レイアウトを調整しています。
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
val marginToAdd = dpToPx(30, this)
val layoutParams = topLiner.layoutParams as ViewGroup.MarginLayoutParams
layoutParams.topMargin += marginToAdd
topLiner.layoutParams = layoutParams
weatherBackground.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
weatherBackground.viewTreeObserver.removeOnGlobalLayoutListener(this)
val bgParams = weatherBackground.layoutParams
bgParams.height = weatherBackground.height + marginToAdd
weatherBackground.layoutParams = bgParams
}
})
}