Android 应用程序无法构建 - 在依赖项的 androidx.work:work-runtime:2.7.0-beta01 中指定的 minCompileSdk (31)

Oli*_*r D 53 android gradle

我正在尝试在我的 M1 中构建一个项目,

但当我运行时出现此错误npx react-native run-android

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugAarMetadata'.
> 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.work:work-runtime:2.7.0-beta01.
     AAR metadata file: /Users/macpro/.gradle/caches/transforms-3/999e9d813832e06d8f1b7de52647a502/transformed/work-runtime-2.7.0-beta01/META-INF/com/android/build/gradle/aar-metadata.properties.
Run Code Online (Sandbox Code Playgroud)

Android/build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "30.0.0"
        minSdkVersion = 21
        compileSdkVersion = 30
        targetSdkVersion = 30
        supportLibVersion   = "28.0.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath('com.android.tools.build:gradle:4.1.2')
        classpath('com.google.gms:google-services:4.3.0')
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
    
}
Run Code Online (Sandbox Code Playgroud)

gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Run Code Online (Sandbox Code Playgroud)

ham*_*vet 50

导致该错误的原因是您的依赖项之一在内部使用 今天发布的WorkManager 2.7.0-beta01(需要 API 31)。就我而言,是的CheckAarMetadata.kt

您可以通过强制 Gradle 使用旧版本的 Work Manager 来实现与 API 30 配合使用的传递依赖项来修复此问题。在文件中build.gradle添加:

dependencies {
    def work_version = "2.6.0"
    // Force WorkManager 2.6.0 for transitive dependency
    implementation("androidx.work:work-runtime-ktx:$work_version") {
        force = true
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该可以解决它。

  • 找不到参数的方法实现(),当我在依赖项中添加它时收到此错误 (4认同)
  • 添加 /sf/users/717993741/ 在 ./android/app/build.gradle 的底部依赖项中所说的内容 (3认同)
  • 如果您的目标是 29,则必须使用版本“2.5.0” - 谢谢 (3认同)
  • 多谢兄弟。我做了同样的事情并解决了问题 (2认同)

hum*_*zed 27

这是因为在work-runtime:2.7.0-beta01更新compileSdkVersion到31

你可以更新compileSdkVersion到 31

work-runtime或使用不包含此更改的旧版本

版本的发行说明中提到了2.7.0-beta01

注意:针对 Android 12 (S) 的应用程序需要 WorkManager 版本 2.7.0。

例如,将其添加到您的build.gradle应该修复它

api(group: "androidx.work", name: "work-runtime") {
    version {
        strictly "2.7.0-alpha04"
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 11

我遇到了同样的问题,我可以通过更改依赖项中 appcompat 的版本来解决它:

 implementation 'androidx.appcompat:appcompat:1.4.0'
Run Code Online (Sandbox Code Playgroud)

我把它改为:

implementation 'androidx.appcompat:appcompat:1.3.1'
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是java。


小智 5

我经历了同样的事情,但实际上是由工作管理器依赖性引起的,我升级到版本 2.7.0 我只是将其降级回 2.6.0

dependencies{
implementation 'androidx.work:work-runtime-ktx:2.6.0'
}
Run Code Online (Sandbox Code Playgroud)


小智 5

在我的flutter应用程序中,更改了 android\app\build.gradle 中的compileSdkVersion和targetSdkVersion

android {
compileSdkVersion 31 // Changed to 31

sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}

defaultConfig {
    applicationId "com.example.blah_blah"
    minSdkVersion 16
    targetSdkVersion 31  //Changed to 31
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
    }
}
Run Code Online (Sandbox Code Playgroud)

}

并且,在 android\build.gradle 中将 kotlin 版本更改为“1.6.10”

buildscript {
ext.kotlin_version = '1.6.10' //change here
repositories {
    google()
    jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:4.1.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
Run Code Online (Sandbox Code Playgroud)

}


归档时间:

查看次数:

125587 次

最近记录:

2 年,10 月 前