找不到路径为 Platform SDK 的平台;android-31

Failed to find Platform SDK with path: platforms;android-31

我正要将支持 SDK 更新到最新版本的 Android,即 SDK 31“S”,但 Gradle 同步有一些问题。

错误

Failed to notify build listener.
Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.   
Could not create task ':app:minifyDebugWithR8'.
Cannot query the value of this provider because it has no value available.
Failed to stop service 'com.android.build.gradle.internal.errors.SyncIssueReporterImpl$GlobalSyncIssueService_5d47b2c0-a1a4-43ab-bbdb-bb6abdacb3ba'.
Failed to find Platform SDK with path: platforms;android-31

这是设置

compileSdk 31

    defaultConfig {
        applicationId "com.app.app
        minSdk 21
        targetSdk 31
        versionCode 7
        versionName "1.0.9"
        vectorDrawables.useSupportLibrary = true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

已经在使用最新的 AGP com.android.tools.build:gradle:7.1.0-alpha01

也已经安装了 Android“S”预览工具。

终于有了最新的AS版本预览

Android 大黄蜂工作室 | 2021.1.1 金丝雀 1 构建 #AI-203.7717.56.2111.7361063,构建于 2021 年 5 月 14 日

以下 documentation 效果不佳。

No signature of method: build_cdzmabn9imuzupf8f433s2vnq.android() is applicable for argument types: (build_cdzmabn9imuzupf8f433s2vnq$_run_closure1) values: [build_cdzmabn9imuzupf8f433s2vnq$_run_closure1@6f573027]

Gradle 同步成功

compileSdkPreview "android-S"
targetSdkPreview "S"

但是该应用程序根本无法安装在任何设备上,无论是发布还是调试。

我们还应该做什么?

请仔细阅读Google提供的迁移文档:https://developer.android.com/about/versions/12/migration

Google 通常不希望您在 SDK 达到平台稳定性之前在生产环境中更新 targetSdkVersion(请参阅时间线 here),而是进行测试它在本地。一旦最新的 API 最终确定,他们希望大多数应用程序更新 targetSdkVersion 以表明他们证明该应用程序与给定的 SDK 级别兼容。最近 Google 开始强制实施长达一年的宽限期,然后他们开始强制所有新应用程序都应以最新的 SDK 为目标。

将 compileSdk 和 targetSdk 版本从 31 降级到 30 解决了我的问题。 不推荐这样做。但紧急情况下使用它。