issues were found when checking AAR metadataの解決方法
エラー内容
Dependency ‘androidx.core:core-ktx:1.15.0’ requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
// エラー文言が続く
こちらは「androidx.core:core-ktx:1.15.0」を使用する際に想定されているAndroidのapiバージョンと、実際に設定しているバージョンが異なるために起こるエラーとなります。
想定は35以上となっていますが、今回のエラーでは34を設定していました。
android {
namespace = "com.vegcale.jetpackcomposestudy"
compileSdk = 34 // apiバージョン
defaultConfig {
applicationId = "com.vegcale.jetpackcomposestudy"
minSdk = 29
targetSdk = 34
// 既存の設定が続く
}
dependencies {
// この依存関係を使用するにはapiバージョン35以上が必要
implementation("androidx.core:core-ktx:1.15.0")
// 既存の設定が続く
}
解決方法としては2種類ありますが、業務開発で急にこのエラーが出てきた場合は、他Androidメンバー等に確認をしてから実施してください。
解決方法1 コンパイルバージョンを上げる
build.gradle.kts(:app)のcompileSdkのバージョンを35にすることで解決します。
android {
namespace = "既存のnamespace"
compileSdk = 35
defaultConfig {
applicationId = "既存のapplicationId"
minSdk = 29
targetSdk = 34
// 既存の設定が続く
警告が表示された場合
警告内容
We recommend using a newer Android Gradle plugin to use compileSdk = 35
This Android Gradle plugin (8.2.0) was tested up to compileSdk = 34.
// エラー文言が続く
こちらはコンパイルバージョンが、現在のプロジェクトで設定しているAndroid Gradleプラグインのバージョンでテストされていないために表示されています。
警告を消すためにはAndroid Gradleプラグインのバージョン上げる、もしくは警告を非表示にする必要があります。
解決方法1 Gradleのアップデート
build.gradle.kts(アプリ名)のandroid.applicationのバージョンを上げる必要があります。
しかし、android.applicationのバージョンの上限は、AndroidStudioのバージョンにより変わります。このため、AndroidStudioのバージョンによっては「解決方法2」を実施するしかないためご了承ください。
plugins {
id("com.android.application") version "X.Y.Z" apply false
// 既存の設定が続く
}
X.Y.Zについてはこちらを見ながら適したものを選択してください。どれが適しているかはプロジェクトによって変わってきます。
バージョンを上げていく中でGradleのバージョンを上げる必要が出た場合は、画面上部もしくは左上にあるメニューから「File」→「Project Structure」を選択、もしくは「ctrl」・「alt」・「shift」・「S」を同時に押します。
Gradle Versionのプルダウンリストから現状より上のバージョンを選択します。
AndroidStudioのバージョンにより対応しているAndroid Gradle Versionが異なるためこちらを参考してください。
解決方法2 警告を非表示にする
gradle.propertiesに、compileSdk=35をサポートしていない警告を非表示にする設定を追加します。
// 既存の設定が続く
android.suppressUnsupportedCompileSdk=35
解決方法2 「androidx.core:core-ktx:1.15.0」のバージョンを下げる
こちらは逆にbuild.gradle.kts(:app)にある依存関係のバージョンを下げる方法です。
dependencies {
implementation("androidx.core:core-ktx:1.13.0")
// 既存の設定が続く
まとめ
どちらの解決方法を実施するかはお好みですが、個人開発で特に制約がない場合は前者がおすすめです。業務開発等でcompileSdkの値を変更できない場合は後者にしましょう。
しかし、「昨日まで出ていなかったのに今日はこのエラーが出る」のような突発的に起こるものではないため、おそらく他メンバーの修正が含まれたプッシュが原因です。その場合は、どの解決策が正しいのかはプロジェクトによるため、他メンバーへの確認が必要になります。