[Error record] Android Studio compilation error (The minCompileSdk (33) specified in a dependency's AAR metadata META-I)





1. Error message



When Android Studio compiles, the following error is reported:

Execution failed for task ':core:checkDebugAarMetadata'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
   > The minCompileSdk (33) specified in a
     dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
     is greater than this module's compileSdkVersion (android-32).
     Dependency: androidx.core:core:1.9.0.
     AAR metadata file: C:\Users\octop\.gradle\caches\transforms-2\files-2.1\c6e343978c6a27069301c93169f4abc4\core-1.9.0\META-INF\com\android\build\gradle\aar-metadata.properties.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Insert image description here





2. Solution



Option 1: Modify the compiled version

Method 1: Directly modify the compiled version;

The problem is that androidx.core:core:1.9.0.the minCompileSdk required in the dependent library is 33, and the compiled version of this application is 32. Setting it to 33 can solve the problem, but this setting will cause other problems;

android {
    
    
    compileSdkVersion 32
    buildToolsVersion "32.0.0"

    defaultConfig {
    
    
        applicationId "kim.hsl.core"
        minSdkVersion 18
        targetSdkVersion 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}

Option 2: Deal with dependent libraries


The above problems are solved below from the perspective of dependency analysis;

implement

gradlew app:dependencies --configuration releaseRuntimeClasspath

Command, view dependent libraries, enter the following content:

D:\002_Project\002_Android_Learn\Componentization>gradlew app:dependencies --configuration releaseRuntimeClasspath
WARNING:: Please remove usages of `jcenter()` Maven repository from your build scripts and migrate your build to other Maven repositories.
This repository is deprecated and it will be shut down in the future.
See http://developer.android.com/r/tools/jcenter-end-of-service for more information.
Currently detected usages in: root project 'Componentization', project ':app', project ':base', ...

> Task :app:dependencies

------------------------------------------------------------
Project :app
------------------------------------------------------------

releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target  (androidJvm)).
+--- org.jetbrains.kotlin:kotlin-stdlib:1.5.0 -> 1.7.10
|    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10
|    \--- org.jetbrains:annotations:13.0
+--- androidx.core:core-ktx:1.9.0
|    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    +--- androidx.core:core:1.9.0
|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
|    |    +--- androidx.annotation:annotation-experimental:1.3.0
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*)
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0
|    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.concurrent:concurrent-futures:1.0.0
|    |    |    +--- com.google.guava:listenablefuture:1.0
|    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1
|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    +--- androidx.arch.core:core-common:2.1.0
|    |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    +--- androidx.arch.core:core-runtime:2.1.0
|    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    |    \--- androidx.arch.core:core-common:2.1.0 (*)
|    |    |    \--- androidx.lifecycle:lifecycle-common:2.5.1
|    |    |         \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.versionedparcelable:versionedparcelable:1.1.1
|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    \--- androidx.core:core-ktx:1.9.0 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*)
|    \--- androidx.core:core:1.9.0 (c)
+--- androidx.appcompat:appcompat:1.5.1
|    +--- androidx.activity:activity:1.5.1
|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    +--- androidx.core:core:1.8.0 -> 1.9.0 (*)
|    |    +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*)
|    |    +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1
|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*)
|    |    |    \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (c)
|    |    +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1
|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |    |    +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*)
|    |    |    +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1
|    |    |    |    +--- androidx.arch.core:core-common:2.1.0 (*)
|    |    |    |    +--- androidx.arch.core:core-runtime:2.1.0 (*)
|    |    |    |    \--- androidx.lifecycle:lifecycle-common:2.5.1 (*)
|    |    |    +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*)
|    |    |    +--- androidx.savedstate:savedstate:1.2.0
|    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    |    +--- androidx.arch.core:core-common:2.1.0 (*)
|    |    |    |    +--- androidx.lifecycle:lifecycle-common:2.4.0 -> 2.5.1 (*)
|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.10 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*)
|    |    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1
|    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1
|    |    |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.1
|    |    |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.1
|    |    |         |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 (c)
|    |    |         |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1 (c)
|    |    |         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.1 (c)
|    |    |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0
|    |    |         |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 1.7.10 (*)
|    |    |         |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0
|    |    |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 1.7.10 (*)
|    |    |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -> 1.7.10
|    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.1 (*)
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 (*)
|    |    +--- androidx.savedstate:savedstate:1.2.0 (*)
|    |    +--- androidx.tracing:tracing:1.0.0
|    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*)
|    +--- androidx.annotation:annotation:1.3.0
|    +--- androidx.appcompat:appcompat-resources:1.5.1
|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    +--- androidx.core:core:1.6.0 -> 1.9.0 (*)
|    |    +--- androidx.vectordrawable:vectordrawable:1.1.0
|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    +--- androidx.core:core:1.1.0 -> 1.9.0 (*)
|    |    |    \--- androidx.collection:collection:1.1.0 (*)
|    |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0
|    |    |    +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
|    |    |    +--- androidx.interpolator:interpolator:1.0.0
|    |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |    |    \--- androidx.collection:collection:1.1.0 (*)
|    |    \--- androidx.appcompat:appcompat:1.5.1 (c)
|    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.core:core:1.8.0 -> 1.9.0 (*)
|    +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*)
|    +--- androidx.cursoradapter:cursoradapter:1.0.0
|    |    \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1
|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.core:core:1.2.0 -> 1.9.0 (*)
|    |    \--- androidx.customview:customview:1.1.0
|    |         +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |         +--- androidx.core:core:1.3.0 -> 1.9.0 (*)
|    |         \--- androidx.collection:collection:1.1.0 (*)
|    +--- androidx.emoji2:emoji2:1.2.0
|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
|    |    +--- androidx.collection:collection:1.1.0 (*)
|    |    +--- androidx.core:core:1.3.0 -> 1.9.0 (*)
|    |    +--- androidx.lifecycle:lifecycle-process:2.4.1
|    |    |    +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*)
|    |    |    +--- androidx.startup:startup-runtime:1.1.1
|    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    |    \--- androidx.tracing:tracing:1.0.0 (*)
|    |    |    \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
|    |    \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
|    +--- androidx.emoji2:emoji2-views-helper:1.2.0
|    |    +--- androidx.collection:collection:1.1.0 (*)
|    |    +--- androidx.core:core:1.3.0 -> 1.9.0 (*)
|    |    \--- androidx.emoji2:emoji2:1.2.0 (*)
|    +--- androidx.fragment:fragment:1.3.6
|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.core:core:1.2.0 -> 1.9.0 (*)
|    |    +--- androidx.collection:collection:1.1.0 (*)
|    |    +--- androidx.viewpager:viewpager:1.0.0
|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |    |    +--- androidx.core:core:1.0.0 -> 1.9.0 (*)
|    |    |    \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
|    |    +--- androidx.loader:loader:1.0.0
|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |    |    +--- androidx.core:core:1.0.0 -> 1.9.0 (*)
|    |    |    +--- androidx.lifecycle:lifecycle-livedata:2.0.0
|    |    |    |    +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*)
|    |    |    |    +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 -> 2.5.1 (*)
|    |    |    |    \--- androidx.arch.core:core-common:2.0.0 -> 2.1.0 (*)
|    |    |    \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.5.1 (*)
|    |    +--- androidx.activity:activity:1.2.4 -> 1.5.1 (*)
|    |    +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.5.1 (*)
|    |    +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.5.1 (*)
|    |    +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.5.1 (*)
|    |    +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.0 (*)
|    |    \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.3.0 (*)
|    +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*)
|    +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*)
|    +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1
|    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    +--- androidx.savedstate:savedstate:1.2.0 (*)
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*)
|    \--- androidx.appcompat:appcompat-resources:1.5.1 (c)
+--- com.google.android.material:material:1.6.1
|    +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
|    +--- androidx.appcompat:appcompat:1.1.0 -> 1.5.1 (*)
|    +--- androidx.cardview:cardview:1.0.0
|    |    \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.core:core:1.1.0 -> 1.9.0 (*)
|    |    +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
|    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4
|    |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.5.1 (*)
|    |    +--- androidx.core:core:1.3.2 -> 1.9.0 (*)
|    |    \--- androidx.constraintlayout:constraintlayout-core:1.0.4
|    +--- androidx.core:core:1.5.0 -> 1.9.0 (*)
|    +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
|    +--- androidx.dynamicanimation:dynamicanimation:1.0.0
|    |    +--- androidx.core:core:1.0.0 -> 1.9.0 (*)
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    \--- androidx.legacy:legacy-support-core-utils:1.0.0
|    |         +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |         +--- androidx.core:core:1.0.0 -> 1.9.0 (*)
|    |         +--- androidx.documentfile:documentfile:1.0.0
|    |         |    \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |         +--- androidx.loader:loader:1.0.0 (*)
|    |         +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
|    |         |    \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    |         \--- androidx.print:print:1.0.0
|    |              \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
|    +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.3.0 (*)
|    +--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*)
|    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.5.1 (*)
|    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0
|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.core:core:1.1.0 -> 1.9.0 (*)
|    |    +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
|    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.transition:transition:1.2.0
|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.core:core:1.0.1 -> 1.9.0 (*)
|    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
|    \--- androidx.viewpager2:viewpager2:1.0.0
|         +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|         +--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*)
|         +--- androidx.recyclerview:recyclerview:1.1.0 (*)
|         +--- androidx.core:core:1.1.0 -> 1.9.0 (*)
|         \--- androidx.collection:collection:1.1.0 (*)
\--- androidx.constraintlayout:constraintlayout:2.1.4 (*)

(c) - dependency constraint
(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

BUILD SUCCESSFUL in 2s

androidx.core:coreAnalyzing the entire dependency, we found that there are dependent libraries everywhere , and the versions are different;

Insert image description here
androidx.core:core:1.9.0However, when version is used , it only androidx.core:core-ktx:1.9.0appears in the dependent library;

+--- androidx.core:core-ktx:1.9.0
|    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    +--- androidx.core:core:1.9.0
|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
|    |    +--- androidx.annotation:annotation-experimental:1.3.0
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*)
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0
|    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.concurrent:concurrent-futures:1.0.0
|    |    |    +--- com.google.guava:listenablefuture:1.0
|    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1
|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    +--- androidx.arch.core:core-common:2.1.0
|    |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    +--- androidx.arch.core:core-runtime:2.1.0
|    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    |    \--- androidx.arch.core:core-common:2.1.0 (*)
|    |    |    \--- androidx.lifecycle:lifecycle-common:2.5.1
|    |    |         \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    +--- androidx.versionedparcelable:versionedparcelable:1.1.1
|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
|    |    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    \--- androidx.core:core-ktx:1.9.0 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*)
|    \--- androidx.core:core:1.9.0 (c)

Other dependent libraries use lower versions of androidx.core:coredependent libraries;

Directly commenting out androidx.core:core-ktx:1.9.0the dependent library, or reducing it to androidx.core:core-ktx:1.8.0; can solve this problem;

Depend on

dependencies {
    
    

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'androidx.appcompat:appcompat:1.5.1'
    implementation 'com.google.android.material:material:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

Change to

dependencies {
    
    

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.8.0'
    implementation 'androidx.appcompat:appcompat:1.5.1'
    implementation 'com.google.android.material:material:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

Only the version of androidx.core:core-ktx dependent library has been modified from 1.9.0 to 1.8.0;


Solution: A certain dependent library reports an error, execute

gradlew app:dependencies --configuration releaseRuntimeClasspath

Command to check the dependency relationship of the dependent library, which dependent library it belongs to, and which dependent library it conflicts with, so as to solve the dependency conflict problem;

Guess you like

Origin blog.csdn.net/han1202012/article/details/127630948