Сегодня утром я обновил свою студию Android до последней версии фламинго, так как я не могу создать новый проект компоновки, получая следующую ошибку
No matching variant of com.android.tools.build:gradle:8.0.0 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.0'
но: - Возможность варианта «apiElements» com.android.tools.build:gradle:8.0.0 объявляет библиотеку, упакованную в виде jar, и ее зависимости, объявленные извне: - Несовместимо, поскольку этот компонент объявляет компонент для использования во время компиляции, совместимый с Java 11, а потребителю нужен компонент для использования во время выполнения, совместимый с Java 8.
** Уровень моего приложения **
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.abc.myflamingotestapp'
compileSdk 33
defaultConfig {
applicationId "com.abc.myflamingotestapp"
minSdk 24
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.3.2'
}
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
implementation 'androidx.activity:activity-compose:1.5.1'
implementation platform('androidx.compose:compose-bom:2022.10.00')
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.ui:ui-graphics'
implementation 'androidx.compose.ui:ui-tooling-preview'
implementation 'androidx.compose.material3:material3'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00')
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
debugImplementation 'androidx.compose.ui:ui-tooling'
debugImplementation 'androidx.compose.ui:ui-test-manifest'
}
** Оболочка Gradle **
#Mon Apr 17 20:26:41 IST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
** Gradle верхнего уровня **
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '8.0.0' apply false
id 'com.android.library' version '8.0.0' apply false
id 'org.jetbrains.kotlin.android' version '1.5.31' apply false
}
возникает эта проблема при попытке сборки, если кто-то еще сталкивался с той же проблемой, пожалуйста, помогите или предложите что-нибудь.
Нет, все еще не работает
Поскольку вы используете Android API уровня 33, Java 11 доступна через дешугаринг.
Теперь вы можете изменить исходную и целевую совместимость на Java 11:
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlin {
jvmToolchain(11)
}
Если вы не хотите менять совместимость с версией 11 и оставаться в 1.8, вы можете удалить сахар:
сначала обновите Gradle до 8.0.0 (не ниже 4.0.0), изменив build.gradle.kts:
plugins {
id("com.android.application") version "8.0.0" apply false
id("com.android.library") version "8.0.0" apply false
id("org.jetbrains.kotlin.android") version "1.5.31" apply false
}
или модифицируя build.gradle:
plugins {
id 'com.android.application' version '8.0.0' apply false
id 'com.android.library' version '8.0.0' apply false
id 'org.jetbrains.kotlin.android' version '1.5.31' apply false
}
как показано в https://developer.android.com/build/releases/gradle-plugin#updating-plugin
Затем удалите сахар, изменив файл build.gradle.kts модуля вашего приложения:
android {
defaultConfig {
// Required when setting minSdkVersion to 20 or lower
multiDexEnabled = true
}
compileOptions {
// Flag to enable support for the new language APIs
// For AGP 4.1+
isCoreLibraryDesugaringEnabled = true
// For AGP 4.0
// coreLibraryDesugaringEnabled = true
// Sets Java compatibility to Java 8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.2")
}
или ваш файл build.gradle Groovy:
android {
defaultConfig {
// Required when setting minSdkVersion to 20 or lower
multiDexEnabled true
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}
как показано в https://developer.android.com/studio/write/java8-support#library-desugaring.
Помните, что вам нужно удалить аргумент -XX:MaxPermSize=1024m jvmargs в файле gradle.properties, чтобы избежать ошибки.
Никакое добавление Desugaring не имело значения, по-прежнему возникала та же проблема, я думаю, что есть какая-то ошибка android studio flamingo.
Я столкнулся с похожей проблемой
Я изменил build.gradle(Project: MyProject) на
plugins {
id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.8.10' apply false
id 'org.jetbrains.kotlin.jvm' version '1.8.10' apply false
}
Измените kotlinCompilerExtensionVersion в build.gradle(Module: app) на
composeOptions {
kotlinCompilerExtensionVersion '1.4.3'
}
И обновите Gradle JDK до openJDK-19 (любая версия 11 и выше). Скриншот настроек
Для меня изменение только версии Java в файле build.gradle
не сработало. Поэтому я изменил его в настройках Gradle.
Перейдите к File -> Project Structure -> SDK Location -> Gradle Settings
измените Gradle JDK на 17.
Нажмите OK и измените compileOptions
и kotlinOptions
на ту же версию в build.gradle(Module:app)
:
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
Я также столкнулся с такими проблемами после обновления Android Studio. Ошибка связана с версией вашего плагина, которая равна 8.0.0. Может просто баг. Не уверен. Но то, что вы можете попробовать, это перейти в файл
build.gradle
для вашего проекта. В зависимостях найдите строку, в которой указана версия плагинаcom.android.tools.build:gradle
. Вы можете изменить его на другую версию, напримерclasspath 'com.android.tools.build:gradle:7.0.4'
. Посмотрите, работает ли это. Если не помогло, попробуйте изменить версию других зависимостей.