Flutter2.5.2引入camera^0.9.4+4插件出现compileDebugJavaWithJavac编译错误
问题根因
你遇到的编译错误是因为当前使用的camera: ^0.9.4+4版本适配了Android 12(API级别31),引入了只有API 31才支持的EncoderProfiles相关API,你的项目当前Android编译SDK版本低于31,因此找不到对应类和方法触发报错。
解决方案
提供两种可选方案,根据需求选择即可:
方案1:降级camera插件版本(推荐,无需修改原生配置)
0.9.4+1是0.9.4分支中最后一个不强制要求compileSdk 31的版本,直接修改pubspec.yaml中的依赖即可:
environment: sdk: ">=2.12.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.4 camera: 0.9.4+1 # 不要加^符号,固定版本避免自动升级到更高版本
修改后执行以下命令重新拉取依赖:
flutter clean flutter pub get
重新运行项目即可解决问题。
方案2:升级Android编译SDK版本到31
如果你需要使用新版camera插件的功能,可以修改项目原生配置:
- 打开项目下
android/app/build.gradle文件 - 找到
compileSdkVersion配置项,将值修改为31 - 可选:若后续运行出现targetSdk相关兼容性警告,可同步将
targetSdkVersion也修改为31,minSdkVersion保持21不变即可
修改后同步Gradle配置,重新运行项目即可。
内容的提问来源于stack exchange,提问作者Tharindu Lakshan
相关产品推荐
相关产品推荐

