我们建议使用较新的 Android Gradle 插件来使用compileSdkPreview =“Tiramisu”

2024-04-27

我正在使用 Android Studio Dolphin | 2021.3.1 JEtpack Compose 的 Canary 8,

操作系统:Windows 10(最新版本)

更新 Android Studio 后,我的 @Preview() 停止工作:


@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 插件也是最新的。 这是我的 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
}

请帮助我并提前致谢?


您可以尝试最新的 alpha 版本com.android.application and com.android.library.

并且不要忘记使用 Android Studio Canary 到最新版本。

如果您需要我的一些信息build.gradle和我的 Android Studio 版本,在这里:

My 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)
}

And my Android studio verion: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们建议使用较新的 Android Gradle 插件来使用compileSdkPreview =“Tiramisu” 的相关文章

随机推荐