Flutter项目中file_picker插件构建失败及Android真机失效求助
Flutter file_picker插件适配问题解决方案
问题1:4.1.3版本Android真机无法打开文件选择器
Android 13(API 33+)已废弃原有的READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE权限用于文件选择场景,需替换为新的媒体权限,同时兼容低版本:
- 修改
AndroidManifest.xml权限配置:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myproject"> <!-- Android 13+ 媒体文件权限 --> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> <!-- 兼容Android 12及以下版本 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> </manifest>
- 配合
permission_handler插件动态申请权限,确保运行时获取到对应权限后再调用file_picker。
问题2:升级至5.3.1版本后构建失败
报错是因为插件的Android Gradle配置与项目AGP(Android Gradle Plugin)版本不兼容,5.x版本要求AGP≥7.0.0,对应Gradle版本≥7.0:
- 升级项目AGP版本:
- 修改项目根目录
build.gradle中的AGP依赖:dependencies { classpath 'com.android.tools.build:gradle:7.0.4' // 或更高兼容版本 // 其他依赖... } - 修改
gradle/wrapper/gradle-wrapper.properties中的Gradle版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
- 修改项目根目录
- 若不想升级AGP,可尝试降级至file_picker 5.1.0版本,该版本对旧AGP兼容性更好。
- 清理缓存后重新构建:
flutter clean rm pubspec.lock flutter pub get flutter run
内容的提问来源于stack exchange,提问作者progranoob
相关产品推荐
相关产品推荐

