programing

네이티브 Java 또는 Kotlin에서 "의존관계 AAR 메타데이터에 지정된 minCompileSdk(31)" 오류를 해결하려면 어떻게 해야 합니까?

shortcode 2022. 7. 16. 15:03
반응형

네이티브 Java 또는 Kotlin에서 "의존관계 AAR 메타데이터에 지정된 minCompileSdk(31)" 오류를 해결하려면 어떻게 해야 합니까?

오류 메시지:

종속성의 AAR 메타데이터(META-INF/com/android/build/gradle/aar-metadata.properties)에 지정된 minCompileSdk(31)가 이 모듈의 compileSdkVersion(android-30)보다 큽니다.의존관계: Androidx.core:core-ktx:1.7.0-alpha02.

AAR 메타데이터 파일:
C:\사용자\mahammad.zeeshan1.gradle 2\files-2.1\a20beb0771f59a8dbb8d416ea06a9d\jetized-core-1.7.0-alpha02\META-INF\com\android\build\gradle\aar-metadata.properties.

둘 다 설정compileSdkVersion그리고.targetSdkVersion로.31당신의 안에서build.gradle(app)파일.

android {
    compileSdkVersion 31 // <-- This
    defaultConfig {
        applicationId "com.example.app"
        targetSdkVersion 31 // <-- and this too
        // ...
    }
}

해결책을 찾았습니다.앱 Gradle 파일의 패키지 위에 이 코드 줄을 입력하십시오.

Kotlin 개발자의 경우:

configurations.all {
    resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' }
}

Screenshot of code with a red freehand circle

Java 개발자용

configurations.all {
    resolutionStrategy { force 'androidx.core:core:1.6.0' }
}

이 문제는 다음을 선언하는 라이브러리에서 가장 많이 볼 수 있습니다.

implementation androidx.core:core-ktx:1.7.0-beta01

minCompileSdk31이지만minSdkVersion현저하게 낮습니다.의 증가compileSdk문제를 해결하기에 충분합니다.덮어쓸 필요도 없고, 심지어 이 명령어를 변경할 필요도 없습니다.targetSdk.

android {
    compileSdk 31

...
}

마침내, 나는 내 문제를 해결할 수 있다.

뭐가 문제였나요?

하나의 모듈에서는 다음과 같은 의존관계가 있었습니다.

implementation "androidx.core:core-ktx:+"

그러나 앱 모듈을 포함한 다른 모듈들은 다음과 같은 종속성을 가지고 있었다.

implementation "androidx.core:core-ktx:1.6.0"

변환중

implementation "androidx.core:core-ktx:+"

로.

implementation "androidx.core:core-ktx:1.6.0"

내 문제를 해결했다.

컴파일 SDK를 31로 업데이트해야 합니다.현재 30으로 설정되어 있는 것 같습니다.그래들 파일에는 다음과 같은 것이 있어야 합니다.compileSdk에서android차단합니다.

그것을 31로 올려라.이것이 어떤 이유로 문제가 된다면 SDK 버전을 컴파일할 필요가 없는 버전으로 종속성을 낮출 수도 있습니다.

Jetpack Compose 내비게이션 사용 시 이 문제가 발생하였습니다.

사용하고 있었습니다.androidx.navigation:navigation-compose:2.4.0-alpha07

그래서 다른 버전을 사용하여 해결했습니다.

`androidx.navigation:navigation-compose:2.4.0-alpha06`

며칠 전에 작동하던 리액션 네이티브 프로젝트에서 이 문제가 발생했는데 갑자기 다음과 같은 오류가 발생합니다.

* What went wrong:
Execution failed for task ':app:checkDevDebugAarMetadata'.
> Multiple task action failures occurred:
   > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
      > The minCompileSdk (31) specified in a
        dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
        is greater than this module's compileSdkVersion (android-30).
        Dependency: androidx.core:core-ktx:1.7.0-alpha02.
        AAR metadata file: /Users/me/.gradle/caches/transforms-2/files-2.1/ed22ee8b86d25659bbef1e9ee203b75c/jetified-core-ktx-1.7.0-alpha02/META-INF/com/android/build/gradle/aar-metadata.properties.
   > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
      > The minCompileSdk (31) specified in a
        dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
        is greater than this module's compileSdkVersion (android-30).
        Dependency: androidx.core:core:1.7.0-alpha02.
        AAR metadata file: /Users/me/.gradle/caches/transforms-2/files-2.1/23234efc7e9de9bfe6a3fea85a6072ef/core-1.7.0-alpha02/META-INF/com/android/build/gradle/aar-metadata.properties.

에러 메시지를 읽고, 문제가 다음과 같은 것을 알았습니다.androidx.core:core-ktx그래서 나는 그것에 대해 더 검색했고 새로운 버전이 지난 9월 https://androidx.tech/artifacts/core/core-ktx/ 라는 것을 발견했다. https://androidx.tech/artifacts/core/ktx/1.7.0-alpha02.targetSdkVersion = 31

나는 달렸다grep -r "androidx.core:core-ktx" node_modules제겐 한 가지 의존관계가 있는데implementation "androidx.core:core-ktx:+"앱 설치 시 최신 버전이 설치됩니다.31로 업데이트하면 일부 종속성의 코드가 깨지는 것 같기 때문에 업데이트할 수 없습니다.

unrecognized Attribute name MODULE (class com.sun.tools.javac.util.SharedNameTable$NameImpl)

어떻게 고쳐야 할지 모르겠고 단서도 찾을 수 없어요 아마 새 제품이라서 그럴 거예요

회피책으로 파일에 저장android/app/build.gradle

앞에 다음 블록을 추가합니다.android {}차단합니다.

configurations.all {
    resolutionStrategy { force 'androidx.core:core-ktx:1.7.0-alpha01' }
}

이렇게 하고 나니 효과가 있었어요.그것은 모든 것을 강요할 것이다.androidx.core:core-ktx되려고1.7.0-alpha01

같은 문제가 발생했는데 라이프 사이클 라이브러리에서 문제가 발생했다는 것을 알게 되었습니다.

베타 버전부터 바꿨는데

Androidx.disp:flash-lifeata:2.4.0 1 1

현재 안정적인 버전으로,

Androidx.disp:flash-lifeata:2.3.1

Android사이트에서 버전을 확인합니다.

언급URL : https://stackoverflow.com/questions/69034879/how-can-i-resolve-the-error-the-mincompilesdk-31-specified-in-a-dependencys

반응형