Flutter添加file_picker包后构建报cannot find symbol R错误
问题产生原因
该报错是因为你的Flutter项目当前Android编译SDK版本低于30导致的。Build.VERSION_CODES.R对应Android 11系统的API等级30,file_picker 4.0及以上版本默认依赖API 30的相关常量,低版本Android编译SDK的源码中不存在R这个版本常量定义,因此编译时会抛出找不到符号的错误。你之前切换包版本未生效大概率是因为切换的版本也都是要求编译SDK≥30的版本。
解决方法
- 打开项目路径下的
android/app/build.gradle文件,找到compileSdkVersion配置项,将其数值修改为30或更高(推荐设置为33,是目前兼容性较好的稳定版本)部分新创建的Flutter项目该参数会默认引用
flutter.compileSdkVersion变量,你可以直接修改为具体数值,或者到android/local.properties文件中新增一行配置flutter.compileSdkVersion=33统一管控 - 同步修改同
build.gradle文件中的targetSdkVersion配置,设置为和compileSdkVersion相同的数值,避免出现运行时权限、行为适配类的兼容问题 - 保存所有修改后,执行
flutter clean清理缓存,再重新执行构建命令即可正常编译
内容的提问来源于stack exchange,提问作者Amiden
相关产品推荐
相关产品推荐

