Не удалось найти SDK платформы с путем: платформы;android-31

Я собирался обновить SDK поддержки до последней версии Android, которая является SDK 31 «S», но у него есть некоторые проблемы с синхронизацией Gradle.

Ошибка

Не удалось уведомить слушателя сборки.

Не удалось разрешить все зависимости для конфигурации ": app: debugRuntimeClasspath". Не удалось создать задачу ':app:minifyDebugWithR8'. Невозможно запросить значение этого поставщика, потому что у него нет доступного значения. Не удалось остановить службу com.android.build.gradle.internal.errors.SyncIssueReporterImpl$GlobalSyncIssueService_5d47b2c0-a1a4-43ab-bbdb-bb6abdacb3ba. Не удалось найти SDK платформы с путем: платформы;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 Studio Bumblebee | 2021.1.1 Canary 1Build #AI-203.7717.56.2111.7361063, построен 14 мая 2021 г.

Следуя документации, тоже не работает.

      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"

Но приложение вообще не может быть установлено ни на одном устройстве, ни на выпуске, ни на отладке.

Что еще нам делать?

2 ответа

Вам следует внимательно прочитать документ о миграции, предоставленный Google: https://developer.android.com/about/versions/12/migration

Google обычно не хочет, чтобы вы обновляли свой продукт в производственной среде до того, как SDK достигнет стабильности платформы (см. Временную шкалу здесь), а скорее тестирует его локально. Как только последние API будут завершены, они ожидают, что большинство приложений обновят targetSdkVersionчтобы сказать, что они подтверждают, что это приложение совместимо с данным уровнем SDK. В последнее время Google начал применять льготный период продолжительностью около года, прежде чем они начнут требовать, чтобы все новые приложения были нацелены на последнюю версию SDK.

Понижение версии compileSdk и targetSdk до 30 с 31 решило мою проблему. Это не рекомендуется. Но используйте его в экстренных случаях. Удачного кодирования <3

Другие вопросы по тегам