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

发布于 2025-01-20 19:08:26 字数 6369 浏览 2 评论 0原文

我正在使用 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
}

请帮助我并提前致谢?

I am using Android Studio Dolphin | 2021.3.1 Canary 8 for JEtpack Compose,

OS: Windows 10 (latest version)

My @Preview() stop working after I update my Android Studio:


@Preview(showBackground = true)
@Composable
fun DefaultPreview()
{
    Template_Compose_11Theme {
        Greeting("Android")
    }
}

and I got this error:

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)

Moreover I got this error:

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"

Even my Android Gradle Plugin is the newest.
here is my build.gradle file:

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"
}

and here is the other build.gradle file:

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
}

Please help me and thanks in Advance?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱*していゐ 2025-01-27 19:08:26

您可以尝试com.android.applicationcom.android.library.library.library的最新alpha版本。

而且,不要忘记将Android Studio Canary用于最新版本。

If you need some information of my build.gradle and my Android Studio version, here you are:

My build.gradle.kts in root project:

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:

You can try the newest alpha version of com.android.application and com.android.library.

And don't forget to using Android Studio Canary to latest version.

If you need some information of my build.gradle and my Android Studio version, here you are:

My build.gradle.kts in root project:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文