Flutter运行报错:instanceof模式匹配在-source 8中不被支持
解决Flutter Firebase Core编译错误:instanceof模式匹配不支持-source 8
问题根源
你本地安装了支持instanceof模式匹配的Java 16,但项目编译配置指定为Java 8,而firebase_core:2.32.0的Android代码使用了Java 16专属的instanceof模式匹配语法,导致编译冲突。
解决方案
以下是三种可行的解决方式:
1. 升级项目Java编译版本到16+
修改android/app/build.gradle中的compileOptions配置:
compileOptions { sourceCompatibility JavaVersion.VERSION_16 targetCompatibility JavaVersion.VERSION_16 }
同时确保android/build.gradle中的Gradle插件版本(如com.android.tools.build:gradle:7.0.0+)和Gradle wrapper版本(如gradle-7.0+)适配Java 16,避免版本不兼容问题。
2. 降级firebase_core到支持Java 8的版本
在pubspec.yaml中指定较低版本的firebase_core(比如2.31.0,该版本未使用Java 16特性):
dependencies: firebase_core: ^2.31.0
执行flutter pub get更新依赖。
3. 强制firebase_core模块使用Java 16编译
如果不想修改项目全局配置或依赖版本,可以在android/build.gradle中添加子项目配置,单独指定firebase_core的编译版本:
subprojects { if (project.name.contains('firebase_core')) { tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_16 targetCompatibility = JavaVersion.VERSION_16 } } }
内容的提问来源于stack exchange,提问作者Manish sahu
相关产品推荐
相关产品推荐

