Android / Gradle / Programming

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の値を変更できない場合は後者にしましょう。

しかし、「昨日まで出ていなかったのに今日はこのエラーが出る」のような突発的に起こるものではないため、おそらく他メンバーの修正が含まれたプッシュが原因です。その場合は、どの解決策が正しいのかはプロジェクトによるため、他メンバーへの確認が必要になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です