Мы рекомендуем использовать более новый плагин Android Gradle для использования compileSdkPreview = "Tiramisu"
Я использую Android Studio Dolphin | 2021.3.1 Canary 8 для JEtpack Compose,
ОС: Windows 10 (последняя версия)
Мой @Preview() перестает работать после обновления Android Studio:
@Preview(showBackground = true)
@Composable
fun DefaultPreview()
{
Template_Compose_11Theme {
Greeting("Android")
}
}
и я получил эту ошибку:
java.lang.ClassNotFoundException: android.view.OnBackInvokedCallback
at com.android.tools.idea.rendering.classloading.loaders.DelegatingClassLoader.findClass(DelegatingClassLoader.kt:81)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at com.android.tools.idea.rendering.classloading.loaders.DelegatingClassLoader.loadClass(DelegatingClassLoader.kt:65)
at androidx.compose.ui.tooling.ComposeViewAdapter$FakeOnBackPressedDispatcherOwner$1.<init>(ComposeViewAdapter.kt:744)
at androidx.compose.ui.tooling.ComposeViewAdapter.<init>(ComposeViewAdapter.kt:743)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:325)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:174)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:135)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:294)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:417)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:428)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:332)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
at android.view.LayoutInflater.inflate(LayoutInflater.java:663)
at android.view.LayoutInflater.inflate(LayoutInflater.java:505)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:359)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:436)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:121)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:719)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$9(RenderTask.java:875)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$3.run(RenderExecutor.kt:192)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Более того, я получил эту ошибку:
We recommend using a newer Android Gradle plugin to use compileSdkPreview = "Tiramisu"
This Android Gradle plugin (7.3.0-alpha08) was tested up to compileSdk = 32
This warning can be suppressed by adding
android.suppressUnsupportedCompileSdk=Tiramisu
to this project's gradle.properties
The build will continue, but you are strongly encouraged to update your project to
use a newer Android Gradle Plugin that has been tested with compileSdkPreview = "Tiramisu"
Даже мой Android Gradle Plugin является самым новым. вот мой файл build.gradle:
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.coolme.me.template_compose_11'
compileSdkPreview 'Tiramisu'
defaultConfig {
applicationId "com.coolme.me.template_compose_11"
minSdk 28
targetSdkPreview 'Tiramisu'
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 compose_ui_version // '1.1.1'
}
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
}
buildToolsVersion '33.0.0 rc2'
ndkVersion '25.0.8221429 rc2'
}
dependencies {
implementation 'androidx.core:core-ktx:1.9.0-alpha02'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.0-alpha06'
implementation 'androidx.activity:activity-compose:1.6.0-alpha01'
implementation "androidx.compose.ui:ui:1.2.0-alpha07"
implementation "androidx.compose.ui:ui-tooling-preview:1.2.0-alpha07"
implementation 'androidx.compose.material:material:1.2.0-alpha07'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.4-alpha05'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha05'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.2.0-alpha07"
debugImplementation "androidx.compose.ui:ui-tooling:1.2.0-alpha07"
debugImplementation "androidx.compose.ui:ui-test-manifest:1.2.0-alpha07"
}
а вот другой файл build.gradle:
buildscript {
ext {
compose_ui_version = '1.2.0-alpha07'
}
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.3.0-alpha08' apply false
id 'com.android.library' version '7.3.0-alpha08' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}
Пожалуйста, помогите мне и заранее спасибо?
1 ответ
Вы можете попробовать новейшую альфа-версию
com.android.application
а также
com.android.library
.
И не забудьте использовать последнюю версию Android Studio Canary.
Если вам нужна информация о моем
build.gradle
и моя версия Android Studio, вот она:
Мой
build.gradle.kts
в корневом проекте:
plugins {
id("com.android.application") version "7.4.0-alpha02" apply false
id("com.android.library") version "7.4.0-alpha02" apply false
id("org.jetbrains.kotlin.android") version "1.6.10" apply false
id("org.jetbrains.kotlin.jvm") version "1.6.10" apply false
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.google.dagger:hilt-android-gradle-plugin:2.42")
}
}
tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}