Flutter Android构建报错:Sealed classes are not supported as program classes 如何解决?
ERROR:/Users/otabekochilov/.gradle/caches/transforms-3/99d4ac1fb93dcdf71f5d6e6abf284220/transformed/jetified-lottie-compose-6.2.0-runtime.jar: D8: com.android.tools.r8.internal.YI0: Sealed classes are not supported as program classes
FAILURE: Build failed with an exception.
- 出错原因:
任务':app:mergeExtDexDevDebug'执行失败。无法解析':app:devDebugRuntimeClasspath'配置的所有文件。
无法将lottie-compose-6.2.0.aar(com.airbnb.android:lottie-compose:6.2.0)转换为匹配属性{artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-is-debuggable=true, dexing-min-sdk=21, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}。DexingWithClasspathTransform执行失败:/Users/otabekochilov/.gradle/caches/transforms-3/99d4ac1fb93dcdf71f5d6e6abf284220/transformed/jetified-lottie-compose-6.2.0-runtime.jar。
Dex转换时出错。
降低Lottie Compose版本
Lottie 6.x版本引入了Java 17的密封类特性,当前构建环境不支持该特性。将pubspec.yaml中的lottie依赖降级到兼容的5.x系列(如5.2.0):dependencies: lottie: ^5.2.0执行
flutter pub get更新依赖后重新构建项目。更新Android Gradle插件与Gradle版本
若需保留Lottie 6.x版本,需确保Android Gradle Plugin (AGP) ≥7.4、Gradle ≥8.0:- 修改
android/build.gradle中的AGP版本:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.2' } } - 修改
gradle/wrapper/gradle-wrapper.properties中的Gradle版本:distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
- 修改
启用核心库脱糖
在android/app/build.gradle的android块内添加配置,启用核心库脱糖以支持Java 17特性:android { compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' }清理构建缓存
执行以下命令清理缓存后重新构建:flutter clean rm -rf ~/.gradle/caches flutter run
内容的提问来源于stack exchange,提问作者Otabek Ochilov

