Flutter Downloader插件在Android 9及以上版本无法运行求助
Flutter Downloader在Android 9+设备无法正常工作的排查与解决
检查网络安全配置
Android 9(API 28)起默认禁止明文HTTP请求,若下载链接为HTTP协议,需配置网络安全策略:
创建android/app/src/main/res/xml/network_security_config.xml文件,内容如下:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config>并在
AndroidManifest.xml的<application>标签中添加:android:networkSecurityConfig="@xml/network_security_config"适配存储权限与路径
Android 10+启用分区存储,即使授予存储权限,直接访问公共目录仍可能受限:- 优先使用插件推荐的应用私有存储路径:
final directory = await getExternalStorageDirectory(); final taskId = await FlutterDownloader.enqueue( url: "你的下载链接", savedDir: directory!.path, showNotification: true, openFileFromNotification: true, );- 如需兼容旧存储模式,在
AndroidManifest.xml的<application>标签中添加:
android:requestLegacyExternalStorage="true"配置后台服务与广播接收器
Android 9+对后台任务限制严格,需确保AndroidManifest.xml中已添加插件所需的组件:<service android:name="vn.hunghd.flutterdownloader.DownloadService" android:permission="android.permission.FOREGROUND_SERVICE" android:exported="false"/> <receiver android:name="vn.hunghd.flutterdownloader.DownloadReceiver" android:exported="false"> <intent-filter> <action android:name="vn.hunghd.flutterdownloader.ACTION_DOWNLOAD_COMPLETE"/> </intent-filter> </receiver>验证插件初始化与版本
确保在应用启动时正确初始化插件,并开启调试日志排查问题:void main() async { WidgetsFlutterBinding.ensureInitialized(); await FlutterDownloader.initialize( debug: true, ignoreSsl: true, // 若存在HTTPS证书验证问题可启用 ); runApp(MyApp()); }同时检查插件版本,更新至最新版可修复已知兼容性问题。
通过日志定位具体问题
使用命令adb logcat | grep FlutterDownloader查看插件的日志输出,根据日志中的错误信息(如权限拒绝、路径不存在、网络异常等)精准排查问题。
内容的提问来源于stack exchange,提问作者wolfsoft Developer
相关产品推荐
相关产品推荐

