android - 无法找到具有路径的平台 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
最后已经有了最新的 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"
但是该应用程序根本无法安装在任何设备上,无论是发布还是调试。
我们还应该做什么?
解决方案
你应该仔细阅读谷歌提供的迁移文档:https ://developer.android.com/about/versions/12/migration
Google 通常不希望您targetSdkVersion
在 SDK 达到平台稳定性之前更新您的生产环境(请参阅此处的时间线),而是在本地进行测试以对其进行测试。一旦最新的 API 最终确定,他们希望大多数应用程序更新,targetSdkVersion
以表明他们证明此应用程序与给定的 SDK 级别兼容。最近,谷歌开始强制执行长达一年的宽限期,然后才开始强制所有新应用程序都应针对最新的 SDK。
推荐阅读
- javascript - (奇怪的 React/Apollo)对象内部的数组具有相同的值
- javascript - setInterval() 是否重新评估函数的内容?
- c++ - 如何在 C++ 中使用 Julia 特殊函数
- python - 为熊猫中的数据框分配非唯一ID
- android - 无法在新的华为设备上使用华为移动服务
- laravel - 在数据库中创建新用户,但如果 Laravel 中存在密码,则保留密码
- mysql - 在 SQL 中添加列时出现错误
- sql - 两个表之间的交集,一个 Empty-SQL
- apache - htaccess 重写规则而不更改浏览器 url
- eclipse - 无法在 /usr/share/tomcat9/conf 加载 Tomcat 服务器配置。配置可能已损坏或不完整