Flutter release版APK安装后WebView提示网页不可用无法联网
webview_flutter 1.0.7 release包无法加载网页问题修复
debug模式运行正常、release包安装后提示网页不可用,是Flutter搭配旧版webview_flutter的经典兼容问题,按以下步骤修复即可:
第一步:补全网络权限
打开项目路径下的android/app/src/main/AndroidManifest.xml,在<manifest>根节点下、与<application>标签平级的位置添加网络权限声明:<uses-permission android:name="android.permission.INTERNET" />注意:Flutter debug构建会自动注入临时网络权限,无需手动配置即可正常联网,但release构建不会自动追加该权限,这是该问题最高发的诱因。
第二步:适配明文流量(按需配置)
如果WebView需要加载HTTP非HTTPS链接,在同文件的<application>标签上添加属性:<application android:usesCleartextTraffic="true" <!-- 其他原有配置保持不变 --> >第三步:添加混淆白名单
webview_flutter 1.0.7版本未内置R8混淆规则,release构建开启代码压缩混淆后,会误删WebView依赖的核心类导致初始化失败、无法发起网络请求:- 打开
android/app/proguard-rules.pro文件,追加以下混淆规则:
-keep class io.flutter.plugins.webviewflutter.** { *; } -dontwarn io.flutter.plugins.webviewflutter.**- 打开
android/app/build.gradle文件,确认release构建类型下正确引用了混淆规则文件:
buildTypes { release { // 其他原有配置保持不变 minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }- 打开
第四步:清理缓存重新构建
执行以下命令清除旧构建缓存,重新打包release版本:flutter clean flutter pub get flutter build apk --release卸载设备上安装的旧版异常APK,安装新构建的安装包即可正常加载网页。
问题现象参考
- release包报错效果:Web page not available报错截图
- 正常运行效果:WebView正常加载页面截图
内容的提问来源于stack exchange,提问作者MOHAMMAD ZEESHAN
相关产品推荐
相关产品推荐

