首页 > 解决方案 > 无法找到具有路径的平台 SDK: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"
    }

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

已经安装了 Android“S”预览工具。 在此处输入图像描述

最后已经有了最新的 AS 版本预览

Android Studio 大黄蜂 | 2021.1.1 Canary 1 Build #AI-203.7717.56.2111.7361063,于 2021 年 5 月 14 日构建

遵循文档也无法正常工作。

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"

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

我们还应该做什么?

标签: androidandroid-12

解决方案


你应该仔细阅读谷歌提供的迁移文档:https ://developer.android.com/about/versions/12/migration

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


推荐阅读