flutter_document_picker在新Flutter应用中构建失败,报Namespace未指定错误
这个错误的核心原因是该插件的Android模块没有配置namespace——新版本Android Gradle插件要求所有库模块必须显式指定namespace,但这个版本的插件没做这项配置,和你自己应用的namespace配置无关。
给你几个可行的解决办法:
修改插件的Android构建配置
找到flutter_document_picker插件在本地的缓存位置,路径大概是:你的Flutter安装目录/.pub-cache/hosted/pub.dev/flutter_document_picker-5.2.3/android/build.gradle
打开这个文件,在android代码块里添加一行配置:namespace "com.example.flutter_document_picker"(命名空间可以填任意合法的包名,只要符合Android包名规则即可)
保存后回到Flutter项目,执行flutter clean和flutter run,构建应该就能通过了。尝试升级插件版本
查看该插件是否有更新版本,新版本大概率已经修复了namespace缺失的问题。如果有可用更新,修改pubspec.yaml里的版本号为最新版,执行flutter pub get后再尝试构建。
关于你问的AndroidManifest额外配置:
插件依赖的Intent.ACTION_OPEN_DOCUMENT是系统文件选择器,不需要额外添加权限或配置。Android 11及以上版本使用这个Intent无需存储权限;Android 10及以下版本,插件自身的AndroidManifest应该已经声明了必要的READ_EXTERNAL_STORAGE权限,你不需要额外添加。
内容的提问来源于stack exchange,提问作者rozerro

