Flutter InAppWebView 6版本文件下载失败问题求助
问题解决方案
一、APK构建错误处理
从构建错误来看,核心是依赖冲突或编译版本不匹配,按以下步骤修复:
- 打开项目根目录
android/build.gradle,将compileSdkVersion和targetSdkVersion统一设为33:android { compileSdkVersion 33 defaultConfig { targetSdkVersion 33 } } - 进入
android/gradle/wrapper/gradle-wrapper.properties,把gradle版本更新为7.4.2(适配Android Studio Dolphin):distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip - 在
android/app/build.gradle的dependencies块中添加依赖统一规则,避免AndroidX冲突:configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.9.0' force 'androidx.appcompat:appcompat:1.6.1' } }
二、Android 10下载失败&模拟器无法下载修复
1. 存储权限适配
Android 10(API 29)的存储规则有变更,需修改AndroidManifest.xml:
- 打开
android/app/src/main/AndroidManifest.xml,在<manifest>标签内添加权限,同时给<application>标签加兼容属性:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application ... android:requestLegacyExternalStorage="true">
2. 下载路径修正
官方beta版本的路径处理可能存在兼容问题,手动调整下载路径:
- 在
FileDownloadPageState的onDownloadStartRequest方法中,改用公共下载目录路径(需先在pubspec.yaml添加path_provider: ^2.0.15依赖):final directory = await getDownloadsDirectory(); final filePath = '${directory?.path}/${downloadRequest.suggestedFilename}';
3. 模拟器下载问题排查
- 给模拟器配置SD卡:打开AVD管理器,编辑对应模拟器,在高级设置里设置SD卡容量(如2GB),重启模拟器。
- 验证模拟器网络:用模拟器自带浏览器打开示例下载链接,确认能正常访问。
三、版本稳定性调整
当前使用的6.0.0-beta.21是测试版本,存在兼容性问题,建议降级到稳定版:
- 修改
pubspec.yaml中的依赖:dependencies: flutter_inappwebview: ^5.8.0 - 执行
flutter pub get,再运行flutter clean清理缓存后重新构建。
内容的提问来源于stack exchange,提问作者User Test
相关产品推荐
相关产品推荐

